【问题标题】:Kendo UI Observable calculated property how to force change notificationKendo UI Observable 计算属性如何强制更改通知
【发布时间】:2017-09-08 14:04:10
【问题描述】:

在使用 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”元素,但这违背了数据绑定的意义。

【问题讨论】:

    标签: mvvm kendo-ui observable


    【解决方案1】:

    更改您的 addr 函数以使用“get”函数来检索值:

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

    “get”函数是 kendo observable 框架的一部分。像这样使用时,当函数中的任何值(通过“get”访问)在其他地方“设置”时,kendo 就会知道从你的函数中刷新绑定值。

    【讨论】:

    • 是的,做到了,太棒了!
    猜你喜欢
    • 2013-12-02
    • 2014-02-05
    • 2015-10-29
    • 1970-01-01
    • 2014-06-17
    • 2017-03-05
    • 2020-12-10
    • 1970-01-01
    • 2014-04-17
    相关资源
    最近更新 更多