2016-04-24 4 views
0

Ich habe das Gefühl, dass es möglich sein muss, auf Vorlagenhelfer von einer Vorlage zu einer anderen zu zeigen. Weiß jemand, wie man das macht?Meteor: Wie man einen Vorlage-Prototyp auf eine andere Vorlage zeigt?

Ich sehe in der Konsole, dass ich Zugriff auf die Vorlage, die ich will: z. B. Template.Users_edit_page.

Und es sieht so aus, als gäbe es ein __helpers-Objekt mit allen definierten Templates (Template.Users_edit_page .__ helpers).

Wie kann ich etwas entlang der Linien von:

Template.User_form.prototype.helpers = Template.Users_edit_page.helpers__

und dann idealerweise jeder Helfer aus der User_form Vorlage aufgerufen (das ist ein Kind des Users_edit_page ist) würde die Users_edit_page Vorlage Helfer

laufen

Antwort

1

Während ich völlig ermutige, in die Interna eines Frameworks zu graben, um besser zu verstehen, was es tut, ist eine direkte Verknüpfung in Implementierungsdetails wie diese (z. B. *.__helpers) im Allgemeinen keine gute Idee, da Framework-Entwickler Implementierungsdetails ändern können König deinen Code.

Wenn Sie die öffentlichen APIs verwenden, können Sie mit weniger Unterbrechungsänderungen und einer erweiterten Benachrichtigung rechnen, bevor dies geschieht (z. B. APIs, die für zukünftige Verfall markiert sind).

Wie in Ihrer anderen Frage erwähnt, ist der flexibelste Ansatz zum Teilen von Helfern über Vorlagen hinweg mit Template.registerHelper.

Allerdings, wenn Sie brauchen etwas gezielter Sie Ihre Funktionen als eigenständige JavaScript-Funktionen definieren:

passwordSecure = function(password) { 
    return password.length > 8; 
}; 
validEmail = function(email) { 
    return email.contains('@'); 
}; 

Dann sind sie als Helfer in allen Vorlagen, die Sie sie wie folgt in möchten:

Template.User_form.helpers({ 
    'passwordSecure': passwordSecure, 
    'validEmail': validEmail, 
}); 
Verwandte Themen