Kendo UI Observable计算属性如何强制更改通知

时间:2017-09-08 14:04:10

标签: mvvm kendo-ui observable

在使用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;元素直接,但这会破坏数据绑定点。

1 个答案:

答案 0 :(得分:1)

更改您的地址功能以使用&#39; get&#39;函数来检索值:

addr: function () {
    return this.get("addr1") + ' ' + this.get("addr2");
},

&#39; get&#39; function是kendo可观察框架的一部分。当像这样使用时,kendo将知道当函数中的任何值通过&#39; get&#39;进行设置时,刷新函数的绑定值。别处。