Kendo k-ng-model
是否支持双向绑定,如果不支持,那么模拟它的最佳方法是什么?
一些上下文:
在角度中,当完成对ng-model的更新时,更新所有感兴趣的各方(例如,刷新视图)。在kendo中,当使用k-ng-model时,我找不到相同的方法,我想直接从controller /指令设置值。
以下是一个示例:Coding Dojo
而且,以防万一,代码也是如此:
<input kendo-auto-complete
k-ng-model="vm.kendoSelection"
ng-model="vm.angularSelection"
k-data-source="vm.countryNames"
k-data-value-field="'name'"
k-data-text-field="'name'" />
样本控制器:
angular.module("MyApp", [ "kendo.directives" ])
.controller("Controller", function(){
// just some data source
this.countryNames = [
{ name: "Albania" },
{ name: "Andorra" }
];
// how to set the k-ng-model here, so that it is also propagated properly (like on
// the view, and that other events like k-on-change work)?
this.kendoSelection = { name: "Albania" };
});
修改
即使在Dion Dirza的回答之后,k-on-change也没有解雇(尽管这是一个方向很好的解决方案)
Dion Dirza答案 0 :(得分:3)
正如文档所说,k-ng-model
应该存储或返回实际类型的窗口小部件值。因此,要使变量kendoSelection
有效,您应该将其定义为实际类型的窗口小部件值,在本例中为自动完成窗口小部件的数组类型。
更改您的代码
vm.kendoSelection = [{ name: "Albania" }];
因为你在这里存储对象数组所以你的变量应该是对象的数组。请注意,您的对象应包含定义为小部件 data-value-field 的属性,该属性将用于与当前数据源进行比较。