j'ai un observableArray
dans ma demande de knock-out comme indiqué ci-dessous:knock-out Observable Parent lorsque l'enfant est enlevé
self.Parents = ko.observableArray([
{
Father: 'Father-A',
Mother: 'Mother-A',
Children: ko.observableArray([
{Name: 'Child-A1'},
{Name: 'Child-A2'},
{Name: 'Child-A3'}])
},
{
Father: 'Father-B',
Mother: 'Mother-B',
Children: ko.observableArray([
{Name: 'Child-B1'},
{Name: 'Child-B2'},
{Name: 'Child-B3'}])
}]);
Et je computed observable
sur la variable Parents
comme indiqué ci-dessous:
ko.computed(function(){
alert('Record Updated');
console.log(self.Parents());
});
Maintenant, quand je ajouter/supprimer des enfants à l'un des parents, je crois que la fonction calculée ci-dessus doit être appelée en tant que variable parent est indirectement mise à jour lorsque j'ajoute/supprime l'enfant. Mais ça ne fonctionne pas. Comme une solution de ci-dessous violon, l'alerte Record Updated
devrait être affichée.
Alors, comment puis-je y parvenir?
Note: ici s'il vous plaît prendre note que ceci est juste un échantillon que je l'ai créé. Dans un scénario réel, l'objet Parents est transmis à la bibliothèque de grille tierce. Et si un changement survient dans Parent/Child, cette grille devrait être mise à jour. C'est la raison pour laquelle je l'ai écrit dans
self.Parents()
computed function
et nonChildren
Salut, avez-vous résolu votre problème? – adiga
@adiga: Oui. Solution publiée comme ma réponse. – user2988458