qlik sense 筛选器的下拉框的值被覆盖

0
筛选器是自己开发的组件。页面中放了两个筛选器,比如年份,月份。选年份的时候,实际上取数据后传到插件的是月份。月份的数据覆盖了年份的数据。
代码如下:
paint: function($element,layout) {
                        //add your rendering code here
                        console.log(layout);
                        var alldata=[];
                        var qlik = this;
                        var selectTitle;
                        $element.empty();
                        if($element.height()!=0 && $element.width()!=0){
                            var divStr = '<div class="mc-lollipop" style="height:'+$element.height()+'px;'+'width:'+$element.width()+'px;"></div>';
                        }else{
                            var divStr = '<div style="height:100%;width:100%;"></div>';
                        }                             
                        var table = $(divStr);
                        var promise = $element.append( table ).promise();

                        function getData(){
                            //console.log(myOption);
                             for(var r = 0; r < layout.qHyperCube.qDataPages[0].qMatrix.length; r++){
                              //console.log(layout.qHyperCube);
                            //console.log(JSON.stringify(layout.qHyperCube))
                                var value1 = layout.qHyperCube.qDataPages[0].qMatrix[r][0].qText;
                                alldata.push(value1);
                            }
                            if(layout.qHyperCube.qDimensionInfo.length == 2){
                                selectTitle = layout.qHyperCube.qDataPages[0].qMatrix[0][1].qText;
                            }else{
                                selectTitle = '请选择';
                            }
                        }                        
                        
                        function myfunction(){
                            var mySelect = new mSelect();
                            getData();
                           
                            var myOption = {
                                'data':[
                                    {'type': selectTitle},
                                    {'content':alldata}
                                ]
                            }
                            mySelect.init({
                                //'dom': '#J_panelOne',
                                'option': myOption,
                            });

                            var fn = function dataDriven(index, layout) {
                                        var qMatrix = layout.qHyperCube.qDataPages[0].qMatrix;
                                        for(var q=0;q<qMatrix.length;q++){
                                          var d = qMatrix[q];
                                          //console.log(index);d[0].qElemNumber
                                          if( d[0]['qText']==index){ //['slice'](0,-1)
                                            d[0].qSelf = qlik;
                                            d[0].qIndex = 0;
                                            d[0].qSelf.backendApi.selectValues(d[0].qIndex,[d[0].qElemNumber],true);---这一句不能正确取到数据
                                          }
                                        }        
                                      }
                            
                            mySelect.setClickCallback(fn, layout);
                            mySelect.setDom( table );
                            mySelect.render();
                        }
                        promise.done(myfunction);
                    }
已邀请:

要回复问题请先登录注册