Obtenez de l'élément DOM à l'aide de meteor modèle aides
Par exemple mon code html est
<template name="atest">
<a href="{{route}}" data-test="test">Click</a>
</template>
Dans le météore de modèle aides, je veux être en mesure de sélectionner la balise d'ancrage.
Template.atest.route = function() {
console.log(this.data-test);
};
Je ne suis pas sûr si cela peut être fait ou pas, mais certainement, il ne peut pas être fait par n'importe quelle méthode que j'ai essayé. Je sais qu'il existe un moyen de passer un argument à un modèle, mais je n'en veux pas. Je veux être en mesure de sélectionner cette balise d'ancrage que modèle, est et de faire quelque chose avec elle.
D'apprécier l'aide que je peux obtenir.
OriginalL'auteur Bads | 2013-12-26
Vous devez vous connecter pour publier un commentaire.
Pas dans les aides, mais dans le
rendered
de rappel que vous pouvez faire:Et des gestionnaires d'événement:
Bien sûr, vous pouvez aussi faire:
Si aucune de ces options fonctionnent pour vous, vous pourriez vouloir réévaluer votre approche. Ayant besoin d'accéder à un élément à partir d'une fonction d'aide vous indique que vous essayez d'utiliser une procédure de codage de style plutôt qu'un modèle axé sur le style. En général, ne pas stocker des données sur les nœuds DOM, de le stocker dans le modèle contextuel de l'objet.
Pourrait-tu nous donner plus de contexte sur ce qu'est exactement que vous essayez de faire? Il pourrait y avoir une meilleure façon.
Pensez à ceci: l'aide doit être appelé pour rendre l'élément. Comment voulez-vous être en mesure d'accéder à l'élément s'il n'existe même pas encore?
Edit: voici un modèle d'approche de fixation
href
attributs d'un modèle, selon lequel elle est définie. Fondamentalement, vous voulez inclure les données nécessaires pour générer le modèle de lien en tout associé modèle parent. Ensuite, il suffit d'appeler le modèle de lien avec ces données:HTML:
JS:
Voir mon edit. Je sais que dans votre OP, vous dites que vous ne voulez pas passer un paramètre des données pour votre modèle de lien. Est-il une raison? Comme vous pouvez le voir dans mon edit, cette approche est très flexible et est vraiment le Météore façon de le faire. Dans le
#each
bloc que vous n'avez même pas besoin d'utiliser un argument. Zéro jQuery nécessaire.notez également que si vous utilisez uniquement jQuery à l'intérieur de votre
Deps.autorun
, la fonction n'est pas fait va être ré-exécuter, et pourrait ne pas affecter vos modèles. Vous avez besoin de conduire le lancement automatique de la fonction avec un réactif de source de données. Si vous êtes à la mise en œuvre d'un réactif de source de données pour faire de manipulation du DOM dans l'autorun fonctionne comme vos modifications de données, vous êtes vraiment dans une mauvaise adaptation d'impédance entre la procédure et le modèle axé sur la programmation. Le point de Météore du moteur de template, c'est qu'il fait tout ce genre de choses pour vous.OMG! Vous avez complètement résolu...j'ai été essayer de venir avec quelque chose comme cela pendant des jours. Merci!! La raison pour laquelle je ne voulais pas transmettre les données, parce que les mêmes données soient transmises, peu importe où il est généré dans le DOM, et je ne savais pas comment cela pourrait aider.
OriginalL'auteur sbking