KnockoutJSで、AJAXコマンドが実行されるたびにJSONデータのobservableArrayを更新する適切な方法は何ですか?
現在、viewmodel.items([])のようなものを使用して配列をブランクにし、サーバーからのJSONデータを再入力しています。KnockoutJSマッピングプラグイン(これを行う唯一の方法である可能性があります)を使用する以外に、正しいパスは何ですか?
私のサーバーロジックは毎回同じデータの一部を送信するので、複製が必要でない限り、アイテムを繰り返して配列にプッシュすることはできません。
////今日のやり方を追加する////
なぜこのようにしているのかわかりませんが、これが私が最初に更新する方法を理解した方法です。つまり、基本的に、前に述べたように、JSONデータを取得し、それを次のようなものに渡します。
_model.addIncident = function (json) {
var checked = json.UserTouches > 0 ? true : false;
_model.incidents.push({
id: ko.observable(json.IncidentIDString),
lastTouchId: ko.observable(json.UserLastTouchIDString),
weight: ko.observable(json.Weight),
title: ko.observable(json.Title),
checked: ko.observable(checked),
createdOn: ko.observable(json.IncidentCreatedOn),
servicename: ko.observable(json.Servicename),
inEdit: ko.observable(false),
incidentHistory: ko.observableArray(),
matchScore: ko.observable()
});
};
JSON配列のノードごとに。ご覧のとおり、通過するすべてのデータでビルドされるカスタムオブザーバブルがいくつかあります。これは間違った方法かもしれませんが、これまではうまく機能していました。