Kendo UI 和 AngularJS Multiselect:ng-model 和 k-ng-model 之间的区别

Kendo UI and AngularJS Multiselect: Difference between ng-model and k-ng-model

本文关键字:k-ng-model 之间 ng-model 区别 UI AngularJS Multiselect Kendo      更新时间:2023-09-26

我的模板中有两个剑道多选小部件。第一个是这样的:

<select kendo-multi-select="" 
        k-option-label="'Select Programs...'" 
        k-data-text-field="'name'" 
        k-data-value-field="'id'"  
        k-data-source="programs" 
        k-ng-model="selectedPrograms" 
        k-on-change="change(kendoEvent)">
</select>

第二个是这样的:

<div ng-repeat="program in userData.programs">
    <select kendo-multi-select="" 
            k-option-label="'Select Services...'" 
            k-data-text-field="'name'" 
            k-data-value-field="'id'" 
            k-data-source="services" 
            ng-model="program.selectedServices" 
            k-on-change="change(kendoEvent)">
    </select>
</div>

现在这是我的问题。最初,当我使用该属性在两个多选中设置k-ng-model时,我在控制器中设置的初始选项将在单击多选时消失。这与此处描述的问题相同。但是正如那里的解决方案所说,我删除了k-ng-model并将其替换为 ng-model ,第二个多选工作正常。

但是,当我在第一次多选中删除k-ng-model并将其替换为ng-model时,没有预填充的数据。如果我保留k-ng-model它会显示预填充的值,但在单击多选时,它们会消失。

这里发生了什么,我该如何解决?

ng-model 仅提供值,您可以将该值绑定到您的范围。

例如,如果您使用的是剑道的日期选择器控件,那么它将只为您提供日期值,例如"7/4/2016"。

K-ng-model 为您提供完整的值作为对象,您可以将其绑定到您的范围。

例如,如果您使用的是剑道的日期选择器控件,那么它将为您获取完整的日期值作为对象,例如"2016-07-12T05:00:00.000Z">

您也可以在剑道网站上参考此链接@http://docs.telerik.com/kendo-ui/AngularJS/introduction

Kendo UI开发人员 在这里,我们最近在AngularJS,ng-model,k-ng-model和multiselect组件上做了很多来回工作。如果您可以在 jsbin 中隔离问题,这将有所帮助。请确保您也使用的是存储库中的最新版本。