Tableau Server过滤器和getfilterAsync承诺

问题描述

我尝试使其简短一些,请有人可以帮助我。 是javascript新功能 我是javascript语言的新手,我希望使下面的代码尽可能短,谢谢。

我正在使用它在Tableau Server中获取过滤器并在html端显示

感谢您的帮助。

嗨,我想尽量缩短时间,请有人帮我。 是JavaScript的新功能 我是javascript语言的新手,我想使下面的这段代码短一些,谢谢。

我正在使用它来过滤并在html端显示

感谢您的帮助。

function onFilterChanged() {
                var sheet = viz.getWorkbook().getActiveSheet();
                //worksheet.
                if (sheet.getSheetType() === 'worksheet') {
                    sheet.getFiltersAsync()
                    .then(function(filters) {
                        var values = "";
                        var html = "";
                        //comment here
                        for (var i = 0; i < filters.length; i++) {
                            html += "<b>Filter " + i + ":</b><ul>";
                            AccessControlFilter = filters[i].getAppliedValues();
                            html += "<li><b>Field Name:</b> " + filters[i].getFieldName();
                            //comment here
                            for (var j = 0; j < AccessControlFilter.length; j++) {
                                html += "<br/><b>Value:</b> " + AccessControlFilter[j].value;
                                    if (i === 0){
                                        values += AccessControlFilter[j].value + ",";
                                   }
                                };
                            html += "</li></ul>";
                        }
                        var infoDiv = document.getElementById('filterDetails');
                        infoDiv.innerHTML = html;
                        var myVal = values.split(',');
                        document.getElementById('myList').value = myVal;`enter code here`
    
                    })
                } else {
                    // dashboard or story.
                    var workSheetArray = sheet.getWorksheets();
                    //comment here
                    for (var i = 0; i < workSheetArray.length; i++) {
                        workSheetArray[i].getFiltersAsync()
                        .then(function(filters) {
                            var values = "";
                            var html = "";
                            //comment here
                            for (var i = 0; i < filters.length; i++) {
                                html += "<b>Filter " + i + ":</b><ul>";
                                AccessControlFilter = filters[i].getAppliedValues();
                                html += "<li><b>Field Name:</b> " + filters[i].getFieldName();
                                //comment here
                                for (var j = 0; j < AccessControlFilter.length; j++) {
                                    html += "<br/><b>Value:</b> " + AccessControlFilter[j].value;
                                        if (i === 0){
                                            values += AccessControlFilter[j].value + ",";
                                       }
                                    };
                                html += "</li></ul>";
                            }
                            //comment here
                            var infoDiv = 
                            document.getElementById('filterDetails');
                            infoDiv.innerHTML = html;
                            //comment here
                            var myVal = values.split(',');
                            document.getElementById('myList').value = myVal;
                        })
                    }
                }
            }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)