Holen Sie sich DOM-element mit meteor Vorlage Helfer
Z.B. mein html ist
<template name="atest">
<a href="{{route}}" data-test="test">Click</a>
</template>
In meteor Vorlage Helfer, ich möchte in der Lage sein, um wählen Sie den Anker-tag.
Template.atest.route = function() {
console.log(this.data-test);
};
Ich bin nicht sicher, ob dies getan werden kann oder nicht, aber es kann sicherlich nicht über jede Methode, die ich ausprobiert habe. Ich weiß, es ist ein Weg, um pass-argument in einer Vorlage, aber ich will nicht, dass. Ich möchte in der Lage sein zu wählen, dass der Anker-tag, die Vorlage ist in und tun etwas mit ihm.
Jede Hilfe dankbar die ich bekommen kann.
InformationsquelleAutor Bads | 2013-12-26
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht Helfer, aber in der
rendered
Rückruf können Sie tun:Und im event-Handler:
Natürlich, Sie könnte auch tun:
Wenn keine dieser Optionen für Sie arbeiten, möchten Sie vielleicht überdenken Sie Ihren Ansatz. Benötigen den Zugriff auf ein element aus einer helper-Funktion bedeutet, dass Sie versuchen, eine prozedurale Programmierstil eher als ein template-driven Stil. Im Allgemeinen, nicht das speichern von Daten auf DOM-Knoten, speichern Sie es in den template-Kontext-Objekt.
Könnten Sie einige zusätzlichen Kontext auf, was genau Sie zu tun versuchen? Gibt es vielleicht einen besseren Weg.
Denken Sie über diese: der Helfer muss aufgerufen werden, um das element. Wie würden Sie in der Lage sein, um Zugriff auf das element, wenn es gar nicht gibt noch?
Edit: hier ist ein template-driven-Ansatz zum anbringen
href
Attribute zu einer Schablone, je nachdem, wo Sie definiert ist. Im Grunde wollen Sie die notwendigen Daten zu generieren, die link-Vorlage in alle zugehörigen übergeordneten Vorlage. Dann rufen Sie einfach den link Vorlage mit, dass die Daten:HTML:
JS:
#each
block, den Sie gar nicht brauchen, um als argument verwenden. Null jQuery benötigt.Deps.autorun
, die Funktion ist nicht wirklich das gehen zu sein, re-run, und sich nicht auf Ihre Vorlagen, wie Sie ändern. Sie müssen Laufwerk die autorun-Funktion mit einem reaktiven Daten-Quelle. Wenn Sie implementieren eine reaktive Datenquelle zu tun, DOM-manipulation im autorun-Funktionen, wie Sie Ihre Daten ändern, sind Sie wirklich in einer Impedanz-Fehlanpassung zwischen Verfahrens-und template-gesteuerte Programmierung. Der Punkt, der Meteor ist template-engine ist, dass es alle diese Sachen für Sie.