在使用Kendo UI Observable(MVVM)进行HTML元素绑定的情况下,我偶尔会使用计算值,但是当依赖值发生变化时,我无法找到强制绑定更新的方法。一个简单的例子:
<div id="test3">
1. <span data-bind="text: addr"></span><br />
2. <span data-bind="text: addr1"></span><br />
3. <span data-bind="text: addr2"></span><br />
</div>
<script>
viewModel = kendo.observable({
addr1: "",
addr2: "",
addr: function () {
return this.addr1 + ' ' + this.addr2;
},
load: function () {
this.set("addr1", "123 Main St");
this.set("addr2", "STE 101");
//need to let view model know to update addr binding
}
});
//to demonstrate the problem of notification bind here
kendo.bind($("#test3"), viewModel);
viewModel.load();
//if I bind here it works, of course
//kendo.bind($("#test3"), viewModel);
</script>
我有一个解决方法,我设置了'addr&#39;元素直接,但这会破坏数据绑定点。
答案 0 :(得分:1)
更改您的地址功能以使用&#39; get&#39;函数来检索值:
addr: function () {
return this.get("addr1") + ' ' + this.get("addr2");
},
&#39; get&#39; function是kendo可观察框架的一部分。当像这样使用时,kendo将知道当函数中的任何值通过&#39; get&#39;进行设置时,刷新函数的绑定值。别处。