1

プロパティへの変更についてViewModelを監視したいと思います。これはノックアウト.jsで可能ですか?

4

2 に答える 2

2

Ryan Niemeyer は、Knockout ビュー モデルに一般的なダーティ フラグを実装するための優れたウォークスルーを提供しています。

http://www.knockmeout.net/2011/05/creating-smart-dirty-flag-in-knockoutjs.html

到達した基本的なアプローチは、ko.toJSON を使用してビュー モデル全体の JSON 表現を比較し、プロパティ値が変更されたかどうかを判断することです。これは、ビュー モデルが大きくなり、ネストすると、これはコストのかかる操作になる可能性があります。

于 2012-11-16T21:19:56.380 に答える
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!");
}

ビューモデルで観測可能なノックアウトへの変更について通知されます。

于 2012-11-16T20:46:08.590 に答える