【问题标题】:Being notified when a view model property changes the checkbox value当视图模型属性更改复选框值时收到通知
【发布时间】:2011-12-27 19:09:45
【问题描述】:

我有一个复选框绑定到我的视图模型中的一个属性。当我勾选复选框时,视图模型属性会更改,当我更改视图模型属性时,复选框会勾选。

我想要做的是在复选框值更改(由视图模型更改触发)时收到通知。如果我勾选复选框,我可以捕捉到“更改”事件,但是当我更改视图模型时,该事件不会触发。

我需要能够收到有关此更改的通知,因为我用来为复选框设置外观的脚本依赖于此事件。

我将自定义绑定视为解决此问题的一种方法,但我希望有一个内置的解决方案。

我使用的是淘汰赛 1.7。

谢谢

【问题讨论】:

    标签: javascript knockout.js


    【解决方案1】:

    如果您想在用户勾选复选框以及视图模型属性以编程方式更改时收到通知,您可以在可观察值上使用Knockout's .subscribe function

    var viewModel = {
       isChecked: ko.observable(false)
    };
    
    viewModel.isChecked.subscribe(function(newValue) {
        // Do stuff here
    });
    

    【讨论】:

    • 为了让它工作,我需要访问我的皮肤脚本中的 observable:\.
    • 你可以访问 DOM 吗?如果是这样,您可以使用 ko.dataFor(domElement) 来获取 observable。
    • @Megacan 这解决了你的问题吗?如果有,请标记为答案。如果没有,请告诉我们仍然缺少哪个部分。
    • 对不起。我确实通过重写处理 UI 的脚本解决了这个问题。但我确实使用了你的建议。谢谢。
    • 很高兴听到,也很高兴能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 2016-12-30
    • 2014-05-14
    • 2014-10-06
    • 2012-03-12
    • 1970-01-01
    相关资源
    最近更新 更多