在openui5中oninit函数ececutes之前不创建div

时间:2016-04-15 06:48:26

标签: javascript jquery sapui5

我需要多选和树形结构下拉。 所以我使用像

这样的html控件
new sap.ui.core.HTML({
        content:  "<div id=\"multiselection\"><select id=\"myid\" multiple=\"multiple\"></select></div>",
        layoutData: new sap.ui.layout.GridData({span: "L4 M4 S4"}),
    }),

现在我在mypage.controller.js的onInit函数中得到ajax响应,如下所示

 var optgroups = [{"label":"WKS-FINGER1","children":[{"label":"WKS1","value":"WKS1"}]},{"label":"WKS-FINGER3","children":[{"label":"WKS3","value":"WKS3"}]},{"label":"WKS-FINGER4","children":[{"label":"WKS4","value":"WKS4"}]},{"label":"WKS-FINGER5","children":[{"label":"WKS5","value":"WKS5"}]}];

现在我在这里绑定(注意我使用的是bootstrap-multiselect.js)

     $('#myid').multiselect({
         enableClickableOptGroups: true,
         onChange: function(option, checked, selected,element) {
            var selection = [];
                 $('#myid option:selected').each(function() {
                selection.push([$(this).val() , $(this).data('order') ]);
            }); 
          //  alert(selection);
            sap.ui.controller("oui5mvc.odbbshift").someFunction(selection);
         }
     });
     $('#myid').multiselect('dataprovider', optgroups);

问题是我没有像这样检查myid.i

var myElem = document.getElementById('myid');
        if (myElem === null){
            alert('does not exist!');
        }
        else{
            alert('it exist!');
        }

但如果我在onAfterRendering方法中使用相同的代码,它可以正常工作。

0 个答案:

没有答案