1

私は次のようにノックアウトJSを使用しています:

var messagesFromServer = getJSONData().messages; //this get msgs from server
ko.mapping.fromJS(messagesFromServer, {}, myobject.viewModel.Messages);

次に、基本的に3秒ごとにこれを呼び出してhtmlテーブルを更新していますが、サーバーから新しいデータが見つかった場合は新しい行が追加されます。新しいメッセージが見つかったときなど、何かが実際に変更されたときに、カスタム コールバックを追加したいと思います。

これをどのように実装すればよいですか?

前もって感謝します。

-hk

4

2 に答える 2

0

2 つのオブジェクトを json に変換し、それらを json 文字列として比較できます。

var messagesFromServer = getJSONData().messages; //this get msgs from server
var newString = ko.toJSON(messagesFromServer);
var oldString = ko.toJSON(myobject.viewModel.Messages);
if(newString != oldString ) {
 // something new
}

ko.mapping.fromJS(messagesFromServer, {}, myobject.viewModel.Messages);

ko.toJSON ドキュメントを参照してください

お役に立てば幸いです。

于 2013-10-03T13:26:50.630 に答える
0

が配列の場合、messages使用ko.utils.compareArraysして変更を検出し、カスタム イベントを自分で発生させることができます。比較するコード例を次に示しko.observableArray()ます。2 つの配列の比較を探します

于 2013-10-03T13:27:31.403 に答える