我想观看ViewModel对任何属性的任何更改。这可能与knockout.js有关吗?
答案 0 :(得分:2)
Ryan Niemeyer在为您的Knockout视图模型实现通用脏标志方面做了很好的演练:
http://www.knockmeout.net/2011/05/creating-smart-dirty-flag-in-knockoutjs.html
达到的基本方法是使用ko.toJSON来比较整个视图模型的JSON表示,以确定是否有任何属性值已经改变,这是简单而强大的,只要你记住,如果你的视图模型变得很大并且嵌套这可能会成为一项昂贵的操作。
答案 1 :(得分:1)
这段代码怎么样:
function subscribeToModelChange (viewModel)
{
for (var prop in viewModel)
{
if (ko.isObservable (viewModel[prop])
viewModel[prop].subscribe (function (newValue) { onModelChanged (viewModel[prop], newValue); });
}
}
function onModelChanged (observable, newValue)
{
alert ("Hooray!");
}
您将在视图模型中收到有关任何挖掘可观察对象的更改的通知。