Javascript 修改可观测阵列时如何激发函数

Javascript 修改可观测阵列时如何激发函数,javascript,knockout.js,Javascript,Knockout.js,当可观测阵列被修改时,是否可能触发函数?我在这里的目标是通知我,如果我的可观察数组被修改,以便在我当前的应用程序上执行一些逻辑 这是我的视图模型,里面有一个可观察的数组 WT.BM.BarsViewModel = function () { var self = this; self.BarsDataHolder = ko.observableArray([]); }; 我只想启动一个函数,通知我是否修改了self.BarsDataHolder 有什么想法吗?您可以订阅任何ko

当可观测阵列被修改时,是否可能触发函数?我在这里的目标是通知我,如果我的可观察数组被修改,以便在我当前的应用程序上执行一些逻辑

这是我的视图模型,里面有一个可观察的数组

WT.BM.BarsViewModel = function () {
    var self = this;
    self.BarsDataHolder = ko.observableArray([]);
};
我只想启动一个函数,通知我是否修改了
self.BarsDataHolder


有什么想法吗?

您可以订阅任何ko.observable或ko.observable数组

WT.BM.BarsViewModel.BarsDataHolder.subscribe(function(newArray) {
   console.dir(newArray);
});

您可以在

上的淘汰文档中找到这一点。是否希望在添加或删除某个项目或其某个项目发生更改时收到通知?在任何情况下,您都应该阅读文档:传递给
newValue
参数的参数是数组本身,而不是新值。谢谢。我只是注意到了。如果Don需要知道新值是什么,他可以在进行更改之前保存数组并进行比较,尽管我不确定他是否关心更改是什么。无论如何,为了更好地反映你的评论,我已经改变了答案。这是一个更好的答案。ThanksHi我尝试过这段代码,但它似乎有一个错误我也尝试过实例化我的视图模型,通过它我访问了可观察数组并订阅,错误消失了,但是每当我将数据推到数组中,我订阅的函数都没有启动,你能显示代码吗?我在击倒教程网站上试用过,效果很好。是一把有效的小提琴。