基本的に監視可能な配列(Items)の変更をリッスンする計算関数があります。問題は、Knockoutが初期化時にこの関数を呼び出すことです。私はそれがその依存関係を理解するためにそれを行うことを知っていますが、私の場合、それはajaxリクエストを行うので問題です。最初の呼び出しでajaxの呼び出しをスキップするために、いくつかのカウンター変数を導入する以外に解決策はありますか?ありがとう。
function MyViewModel(data) {
var self = this;
self.nameToAdd = ko.observable("");
self.Items = ko.observableArray(data.items || []);
self.add = function () {
self.Items.push({ Name: self.nameToAdd()});
self.nameToAdd("");
};
self.remove = function (item) {
self.Items.remove(item);
};
ko.computed(function () {
$.ajax({
url: "myUrl",
type: 'POST',
data: ko.toJSON(self.Items),
contentType: 'application/json'
});
}, self);
}