La nouvelle version de KnockoutJS 3.0 comprend une fonction arrayChangement d'option d'abonnement sur ko.observableArray.
var myArray = ko.observableArray(["Alpha", "Beta", "Gamma"]);
myArray.subscribe(function(changes) {
// For this example, we'll just print out the change info
console.log(changes);
}, null, "arrayChange");
myArray.push("newitem!");
Dans le callback ci-dessus, l'argument "changes" sera un tableau d'objets "change" comme ceci :
[
{
index: 3,
status: 'added',
value: 'newitem!'
}
]
Pour votre problème spécifique, vous voulez être informé des nouveaux articles ou de ceux qui sont retirés. . Pour implémenter cela en utilisant Knockout 3, cela ressemblerait à ceci :
myArray.subscribe(function(changes) {
changes.forEach(function(change) {
if (change.status === 'added' || change.status === 'deleted') {
console.log("Added or removed! The added/removed element is:", change.value);
}
});
}, null, "arrayChange");