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

时间:2014-12-19 06:49:26

标签: javascript angularjs kendo-ui

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

<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时,我在控制器中设置的初始选项将在单击多选时消失。这与描述here的问题相同。但正如那里的解决方案所说,我删除了k-ng-model并将其替换为ng-model,而第二个多选项完美无缺。

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

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

2 个答案:

答案 0 :(得分:1)

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

例如,如果您使用的是剑道的日期选择器控件,那么它只会为您提供&#34; 7/4/2016&#34;

的日期值。

而,

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

例如,如果您使用的是剑道的datepicker控件,那么它将为您提供完整的日期值作为对象,如&#34; 2016-07-12T05:00:00.000Z&#34;

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

答案 1 :(得分:0)

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