12
votes

Meteor: Comment accéder aux propriétés des parents dans des modèles imbriqués?

Je commence à commencer avec météore et adapter le EXEMPLE pour inclure des groupes d'étiquettes imbriqués. J'ai le HTML suivant, qui génère chaque nom de chaque groupe de balises, ainsi que la liste des balises en ce que chaque groupe: xxx pré>

ma question est la suivante: comment adapte le gestionnaire d'événements pour clics Sur les balises pour accéder à la valeur du groupe parent tag_name code>? (c'est-à-dire les données de la boucle extérieure). P>

J'ai actuellement le code ci-dessous, mais Cet objet code> ne donne-moi que l'accès à nom code> et compte code>. P>

Template.tag_filter.events({
  'mousedown .tag': function () {
    console.log('tag mousedown', this);
    // How do I get the value of tag_name?
  }
});


0 commentaires

3 Réponses :


3
votes

Je ne sais pas si vous pouvez obtenir des données de modèle parent, mais dans votre gestionnaire d'événements, vous pouvez accéder aux éléments DOM: Event.CurrentTarget obtiendra l'élément cliqué. Ensuite, utilisez simplement JQuery pour accéder aux attributs. Si nécessaire, événement.CurrentTarget.parentnode obtiendra l'élément parent dans le DOM.

ex: Je ne sais pas où vous mettez la classe Tag, mais disons que c'est la classe de votre div où TagGroup de données est défini. Ensuite, vous pouvez obtenir le nom de la balise en utilisant: xxx


0 commentaires

10
votes

J'ai trouvé la solution pour accéder aux données parent: xxx

La fonction de gestionnaire .Vents reçoit deux arguments: événement, objet avec des informations sur l'événement et le modèle, une instance de modèle pour la modèle où le gestionnaire est défini. M'a pris très longtemps pour comprendre celui-ci. N'utilisez pas la solution de guidon, il affiche vos données!


2 commentaires

Le _ID n'existe que si votre contexte de données actuel a cette variable définie. C'est la même chose que l'appelant this._id . Je ne sais pas comment cela vous permettrait d'accéder aux données du parent?


ce. obtiendra le contexte actuel (par exemple si vous êtes dans un bloc {{chaque}}}), pour moi modèle obtient le contexte des modèles, qui peut différer du contexte actuel.



0
votes
"click selected":function(e){
    // this._id
   var doc_id = $(e.currentTarget).parent().parent().attr("uid")
   console.log(doc_id) 
},
//specify the each id in the div above the nearest #each
//this will work in events but not in helpers`

0 commentaires