我有计算函数,它基本上应该监听可观察数组(项目)中的任何变化。问题是 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);
}