Javascript 计算computed()时调用的依赖可观察项

Javascript 计算computed()时调用的依赖可观察项,javascript,knockout.js,Javascript,Knockout.js,我有一个计算函数,它基本上应该监听可观察数组(项目)中的任何变化。问题是,Knockout在初始化时调用此函数。我知道这样做是为了找出它的依赖关系,但在我的例子中,这是一个问题,因为它会发出ajax请求。除了引入一些计数器变量,在第一次调用时跳过调用ajax,还有什么解决方案吗? 谢谢 我认为您真正想要的是手动订阅您的Items数组,以便在更新它时调用ajax函数 self.Items.subscribe(function(){ $.ajax({ url: "myUrl"

我有一个计算函数,它基本上应该监听可观察数组(项目)中的任何变化。问题是,Knockout在初始化时调用此函数。我知道这样做是为了找出它的依赖关系,但在我的例子中,这是一个问题,因为它会发出ajax请求。除了引入一些计数器变量,在第一次调用时跳过调用ajax,还有什么解决方案吗? 谢谢


我认为您真正想要的是手动订阅您的Items数组,以便在更新它时调用ajax函数

self.Items.subscribe(function(){
    $.ajax({
        url: "myUrl",
        type: 'POST',
        data: ko.toJSON(self.Items),
        contentType: 'application/json'
    });
});
传递的函数只有在数组本身发生更改时才会被调用,因此在初始化时不会被调用。例如,见

self.Items.subscribe(function(){
    $.ajax({
        url: "myUrl",
        type: 'POST',
        data: ko.toJSON(self.Items),
        contentType: 'application/json'
    });
});