2014-03-31 13 views
5

Aus irgendeinem Grund funktioniert das überhaupt nicht. Warum gibt Meteor Template Helper keine Variable im Kontext zurück?

{{user_slugged username}}

Die {{username}} ist eine Variable, auf die Vorlage zur Verfügung. Jedoch gibt es mir einen Null/undefinierten Wert im Helfer.

Hier ist mein Helfer Code

UI.registerHelper('user_slugged', function(username) { 

... other stuff... return things. 


} 

Das Problem, das ich habe, ist, wenn ich so etwas wie diese {{user_slugged 'Hello'}} versuche es alles richtig macht und gibt, was erwartet wird. Wenn ich {{user_slugged username}} versuche, scheint es nicht zu funktionieren, obwohl ich {{username}} in der gleichen Codezeile anzeigen kann.

Das scheint wirklich seltsam, jetzt denke ich, die Art und Weise, Parameter an Lenkstange Helfer zu senden, könnte sich in Meteor 0.8.0 geändert haben. Wenn ja, wäre es großartig, wenn mir jemand in die richtige Richtung zeigen oder mir eine Antwort auf diese Frage geben könnte.

EDIT: Um zu klären, ich bin in der Lage {{username}} in der gleichen Zeile zu verwenden, wie {{user_slugged username}} so etwas wie diese

arbeitet <a href="{{user_slugged username}}">{{username}}</a>

username eine Objekteigenschaft ist die in der Vorlage und an dem Punkt vorhanden ist, wo Ich versuche, es als Parameter an den Helfer zu senden.

+0

Wenn Sie nur '{{username}}' in der Vorlage an dieser genauen Stelle verwenden, funktioniert es (zeigt etwas anderes als 'null/undefined')? Könnte es sein, dass Sie versehentlich den _context_ um den 'user_slugged' Aufruf ändern? –

+0

Ich benutze Benutzernamen in genau der gleichen Zeile ohne Vorlage Kontext ändern – user1952811

+0

@ user1952811 ist 'username' eine Eigenschaft auf ein Objekt oder Helfer selbst? – Firo

Antwort

3

Ich bin nicht sicher, warum dies geschieht (vielleicht gibt es einen globalen Helfer username?), Aber man sollte es zu beheben leicht durch

{{user_slugged ./username}} 
Schreiben der Lage sein,

statt

{{user_slugged username}} 

Der Punkt bedeutet immer den aktuellen Datenkontext, so dass die Rendering-Engine auf keinen Fall davon verwirrt wird.

Verwandte Themen