9
votes

La liaison pour "changement" dans le modèle de colonne vertébrale ne fonctionne pas

Voici le exemple

Je suivais cet excellent tutoriel de Thomas Davis: Qu'est-ce qu'un modèle? D'une manière ou d'une autre, la liaison «changement» ne tire pas. Qu'est-ce que je fais mal ici?


0 commentaires

3 Réponses :


16
votes

Backbone vérifie si la valeur définie est identique à la valeur précédente (regardez https: //github.com/documentcloud/backbone/blob/master/backbone.js#l210 et activé).

Dans votre exemple, la matrice est toujours la même mais la valeur à l'intérieur changeait. C'est délicat à résoudre. Créer une nouvelle copie du tableau semble être au-dessus de la tête. Je suggérerais d'appeler l'événement de changement directement dans votre fonction d'adoption en tant que solution: p>

adopt: function(newChildsName){
  var children_array = this.get('children');
  children_array.push(newChildsName);
  this.set({children:children_array});
  this.trigger("change:children");
}


0 commentaires

4
votes

Voici une solution bit gadouge: xxx


0 commentaires

1
votes

Au lieu d'utiliser des enfants comme une matrice simple, nous pouvons l'utiliser comme collection et écouter l'Ajout, supprimer des événements de la collection.


0 commentaires