剑道下拉菜单使用ng选项代替DataSource

Kendo dropdown with ng-options instead of DataSource

本文关键字:选项 DataSource ng 下拉菜单      更新时间:2023-09-26

我用angular定义了一个下拉列表:

<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模板(像这样)。

我想继续使用简洁的ng-options语法,而不是使用Kendo DataSource方法,感觉有点笨拙。当我更新控制器中的上级数组时,我确实需要下拉菜单来刷新,但我似乎无法让它工作。我试过ng-options, k-ng-options(这里建议的),但我得到的都是一个空的下拉菜单。

普遍缺乏信息(例如,7个月没有答复)使我怀疑这是否可能。

这是因为kendo-drop-down-list指令在ng-options有机会用下拉窗口小部件需要的<option>元素填充元素之前作用于元素。同样的问题发生在使用kendo widgets的东西有ng-repeat元素。

不幸的是,kendo与Angular的集成在很多方面都是不完整的,而且很粗糙,所以一半的解决方法是延迟创建下拉菜单,直到控制器变量可用,或者在控制器变量发生变化时重新构建下拉菜单。

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

这是他们选择用于与Angular集成的方法的一个限制,也是那些不值得费心去破解的事情之一。按照他们推荐的方法使用数据源。

我还建议不要弄乱select元素,因为现在许多浏览器都有原生处理它们的功能,尤其是在移动设备上。