0

我正在尝试从 KendoComboBox 中获取所有列表项。

该列表是使用自定义 angularjs 指令构建的:

  1. html

    <input id="comboBox" />
    
  2. sgComboBoxField 指令:

    'use strict';
     angular.module('sgComponents').directive('sgComboBoxField', ['sgComboBoxService',
        function(sgComboBoxService) {
    
           return { 
              link: function (scope, element, attrs, ctrls) {
                 var dropdownlist = element.find('#comboBox');
                 dropdownlist.kendoComboBox({
                    //various options needed to set up the combox (like datasource) obtained from service
                 )};
                 // tried a breakpoint here in chrome but the items are not visible!
              }
           }
     }]);
    

我的问题是,一旦将组合框加载到 DOM 上,如何从组合框中获取所有列表项?

4

1 回答 1

0

解决方案是使用 $timeout 给 DOM 加载时间,将 dropdownlist 对象转换为 kendo 对象(使用 data('kendoComboBox') ),然后在其上调用 jquery 函数以获取列表的子项:

$timeout(function() {                    
   var listItems = dropdownlist.data('kendoComboBox').ul.children();
   listItems.each(function(index) {
      console.log($(this));
   });                   
});
于 2014-07-04T10:32:38.903 回答