Ember ClassNamebindings ne sont pas appelés au programme d'échantillon

StackOverflow https://stackoverflow.com/questions/9383373

  •  28-10-2019
  •  | 
  •  

Question

Je suis confronté à un problème avec les liaisons des noms de classe. Voici la jsfiddle code pour le même. Enregistrement du nombre de fois de liaison est appelé. On ne l'appelle jamais lorsque la propriété est modifiée.

Était-ce utile?

La solution

Vous semblez avoir quelques problèmes ici. Principalement, si vous souhaitez que les propriétés soient recalculées lorsque le contenu d'un tableau change, vous ne pouvez pas simplement dépendre de la propriété du tableau lui-même - il ne tirera un changement que lorsqu'il est défini sur un tableau différent. Si vous comptez sur myArray.@each Au lieu de cela, votre propriété sera recalculée lorsque le contenu changera également.

Ensuite, votre modèle contenant la portée n'est pas rendu car vous fournissez un modèle de vue vide dans la déclaration de vue de votre guidon. Changez votre "HTML" en:

{{view App.contact}}

Et votre portée apparaîtra.

Enfin, courir Ember.run.sync() ne semble pas être suffisant ici. Je ne suis pas aussi clair sur la raison de cela, mais ... les propriétés calculées mettent à jour uniquement lors de la lecture (par rapport aux observateurs qui mettent à jour immédiatement). Je supposerais que, puisque votre propriété calculée n'est utilisée que par la vue et que la vue ne peut mettre à jour que sur une exécution ultérieure via la boucle d'événement JS, votre propriété calculée n'est recalculée qu'une seule fois pour toutes vos modifications à "subordonnées". Changez votre code pour utiliser les délais d'attente et cela fonctionnera bien.

Voici un jsfiddle avec tous mes changements proposés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top