使用ng-options而不是DataSource的Kendo下拉列表

时间:2015-06-03 05:40:14

标签: javascript angularjs kendo-ui html-select angular-directive

我有一个使用角度定义的下拉列表,如下所示:

<select class="form-control"
        ng-model="controller.selectedUser.superiorId"
        ng-options="superior.userId as superior.lastName + ' ' + superior.firstName for superior in controller.superiors | orderBy:['lastName', 'firstName']"></select>

这很好用,但是我想在条目旁边显示一个小图像,所以我试图将其转换为Kendo下拉列表,您可以在其中定义HTML模板(如http://www.learn2crack.com/2013/11/listview-from-json-example.html)。

我想继续使用简洁的ng-options语法,而不是使用Kendo DataSource方法,感觉有点笨拙的恕我直言。当我更新控制器中的上级数组时,我确实需要下拉列表刷新,但我似乎无法让它工作。我已经尝试过ng-options,k-ng-options(如建议this),但我得到的只是一个空的下拉列表。

普遍缺乏信息(例如7个月没有回答here)让我想知道这是否应该可行。

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

这是因为kendo-drop-down-list指令在ng-options有机会使用下拉窗口小部件所需的<option>元素填充它之前对元素起作用。在具有ng-repeat元素的内容上使用kendo小部件时会出现同样的问题。

不幸的是,剑道与Angular的整合在很多方面都是不完整和狡猾的,所以半解决方法是delay creating the dropdown until a controller variable is availablerebuild the dropdown when a controller variable changes

这些选项都不是最佳选择。当控制器变量发生变化时,第一个选项无法刷新选项列表,重建窗口小部件可能意味着丢失ng-model绑定等。

这是他们选择用于与Angular集成的方法的限制,而其中一个方面并不值得大肆试图破解。只需使用他们的recommended approach of using data sources

我还鼓励不要选择精选元素,因为现在很多浏览器都有本机处理,特别是在移动设备上。