J'ai une vue qui a un contenu extensible / effondré que je voudrais pouvoir basculer en cliquant sur la ligne de la table. Avant Pre1.0, j'avais ceci dans le modèle: qui a été préalablement géré à mon avis: p> Cependant, après la mise à niveau à Pre1.0 L'action est maintenant surplagée directement par le routeur. Cela a du sens dans beaucoup de situations, mais dans ce cas, l'expansion est vraiment une préoccupation de l'opinion. J'ai essayé de simplement remplacer cela avec un gestionnaire d'événement de clic sans chance. P> Y a-t-il une meilleure pratique sur la manière de gérer un événement de préoccupation de vue comme celui-ci avec Pre1.0? P> P>
3 Réponses :
dans Pre1.0 Vous pouvez faire le champ d'affichage l'action en ajoutant cible = "parentview" à l'action:
{{action "expand" target="parentView"}}
Vous pouvez également envelopper la cible (si vous avez plusieurs actions et / ou liaisons) à un seul objet / affichage à l'aide d'un {{with}} code> instruction.
Même si la réponse de @ hors2344 fonctionne, je pense que ce n'est pas vraiment correct.
En effet pour moi la réponse est Modifier strong> (répondant à @gal Ben-Haim) P>
Les aides d'action se comportent peu différents dans une application à base de routeurs. Devis de la documentation: P>
Dans les applications axées sur le routeur, si une action Cet effet de bulletin permet de rester privé. Si certaines transitions ne devraient être disponibles que pour certains sous-sous-états, placez la transition sur le sous-État et vous avez obtenu un type de scopage. P>
blockQuote>
Fondamentalement, pour moi, cela signifie que dans Applications pilotées par le routeur forts> Si vous ne définissez pas explicitement une cible dans l'assistant d'action, elle est envoyée au routeur. P>
Je pense que maintenant les guides répondent très bien à cette question. Voir http://emberjs.com/guides/templates/actions/#toc_specifiant- une cible p>
parentview code> ne représente pas la vue, mais le parentview de son parentview.
Depuis 1.0-PRE, les vues préservent leur contexte, donc dans le modèle,
ceci code> représente le parentview,
parentview code> représente
parentview.parentview code> et
Voir code> représente la vue actuelle.
Voici un violon pour illustrer ce: http://jsfiddle.net/sly7/cnmja/ p>
{{action expand cible = "Voir"}} code> p>
Le routeur Docs emberjs.com/guides/rilter_primer/#toc_navigation Parlez clairement des événements étant manipulés par des vues et un effet bouillonnant jusqu'au routeur. Je ne comprends pas pourquoi cela ne fonctionne pas et que tout se passe directement au routeur, ou les documents sont faux / obsolètes?
Je devais citer mon action pour que cela fonctionne: {{action "développer" cible = "vue"}} code>
@pdenya Vous avez raison, car sans les citations, il tentera de trouver une propriété nommée Développer code>, pas la chaîne
"Développer" code>.
événements ne bulle pas par défaut de la hiérarchie de la vue. Vous pouvez changer ceci (bien que je ne puisse pas dire que je le recommanderais):