knockout js:如何立即获取所有属性的通知

时间:2011-10-21 13:23:30

标签: knockout.js

假设我有一个包含100个道具的ViewModel。目前我需要一个处理程序,如果任何道具更改将被调用。当然,我可以为每个房产写100个订阅,但似乎有更好的方法。就像在C#中一样,您可以绑定到模型的PropertyChanged事件,然后按名称选择感兴趣的属性。

2 个答案:

答案 0 :(得分:8)

一般的答案是创建一个订阅所有内容的dependentObservable。这可以通过在dependentObservable中执行ko.toJS(viewModel)来轻松实现,因为它将递归地解包所有可观察对象。您需要谨慎,不要将自己包含在ko.toJS电话中,否则您可能会陷入无限循环。

如果您正在寻找具有更多功能的内容,请查看此post

答案 1 :(得分:1)

我认为您正在使用KO 1.2.1。在这个版本中并不容易。然而Knockout 1.3即将到来。目前它是测试版,但它非常稳定。限制已在Knockout 1.3中实现。我认为这就是你所需要的。

您可以在此处详细了解1.3版本:http://blog.stevensanderson.com/2011/08/31/knockout-1-3-0-beta-available/

并检查在线样本:http://jsfiddle.net/StevenSanderson/Rnmb2/1/

如果您需要帮助,我可能会帮助您实施。

我希望这正是你所需要的。