Kendo k-ng-model
是否支持双向绑定(bind),如果不支持,模拟它的最佳方法是什么?
一些上下文:
在 Angular 中,当完成对 ng-model 的更新时,所有相关方都会更新(例如刷新 View )。在剑道中,当使用 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'" />
示例 Controller :
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 也没有触发(尽管这是一个很好的解决方案)
迪翁迪扎
最佳答案
如文档所述,k-ng-model
应该存储或返回实际类型的小部件值。因此,要使您的变量 kendoSelection
起作用,您应该将其定义为小部件值的实际类型,在本例中为自动完成小部件的数组类型。
更改代码
vm.kendoSelection = [{ name: "Albania"}];
因为你在这里存储对象数组所以你的变量应该是对象数组。请注意,您的对象应包含一个定义为小部件 data-value-field 的属性,它将用于与当前数据源进行比较。
关于javascript - 如何更新 k-ng-model(也就是像 ng-model 一样的双向绑定(bind)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31369025/