gpt4 book ai didi

javascript - 在 Knockout 可观察数组订阅函数中,你能确定添加或删除了哪些元素吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:46:59 25 4
gpt4 key购买 nike

knockout Observable Arrays使您能够“订阅”数组的更改,just like any other observable . “订阅”回调函数接收一个参数,它是数组的 值。这是一个示例(和 fiddle ):

var oa = ko.observableArray(['some','initial','data']);

oa.subscribe(function(newValue){
console.log("Array was updated! Now it's:");
console.log(newValue);
// But which item was added?
});

oa.push("more data!");
setTimeout(function(){
oa.remove("some");
},1500);

但是,我想知道什么元素被添加到可观察数组中。有什么办法吗?如果我可以将旧数组与新数组进行比较,那么我就可以确定添加或删除了哪些项目。但似乎在调用“订阅”函数回调时,无法访问“先前”的数组值。有没有?

最佳答案

knockout observableArray 提供事件arrayChange

oa.subscribe(function(changes){
ko.utils.arrayForEach(changes, function(c) {
console.log(c.status + " value:\"" + c.value + "\" at index:" + c.index);
});
}, null, 'arrayChange');

http://jsfiddle.net/huocp/Vf8RK/3/

关于javascript - 在 Knockout 可观察数组订阅函数中,你能确定添加或删除了哪些元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24666030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com