2013-12-13 6 views
6

Ich plane, Hogan.js für mein nächstes Projekt zu verwenden. Ich habe versucht, etwas damit zu experimentieren. Ich bin nur stecken geblieben und konnte nicht herausfinden, wie man Helfer mit Hogan.js benutzt. Früher habe ich früher mit Lenker gearbeitet. Gibt es eine Möglichkeit, Hogan ähnlich zu machen?Wie man Helfer in Hogan.js hat

+0

LAMBDA war weitergegeben wird, ist alles, was Sie für mich bekommen das ist genug. Hast du ein spezifisches Problem, das du nicht mit Lambda lösen kannst? –

Antwort

3

Von hogan.js official website:

Hogan.js gegen den Schnurrbart Testsuite entwickelt wurde, so alles, was für Vorlagen gilt als hier angegeben ist, ist auch der Fall für hogan.js.

Überprüfen Sie die mustache manpage für eine ausführliche Erklärung der Funktionen. Vor allem der Teil über Lambda-Ausdrücke.

Im Folgenden finden Sie einen Beispielvergleich der Implementierung zwischen hogan.js und lastleaders.js.

Vorlage

{{#bold}} 
    Willy is awesome. 
{{/bold}} 

Hogan.js

{ 
    "bold": function() { 
     return function(text, render) { 
      return "<b>" + render(text) + "</b>" 
     } 
    } 
} 

Handlebars.js

Handlebars.registerHelper('bold', function(options) { 
    return new Handlebars.SafeString(
     '<b>' + options.fn(this) + '</b>' 
    ); 
}); 

Ausgabe

<b>Willy is awesome.</b> 
2

Ich war mit diesem eine harte Zeit, bis ich this Hogan issue on Lambdas

gefunden wird es nicht mehr benötigt Pass zum Helfer machen.

Vorlage

{{#foo}} 
    Lets put this text in a html tag. 
{{/foo}} 

Hogan.js

"foo": function() { 
    return function(text) { 
     return "<p>" + text + "</p>" 
    } 

Ausgabe

<p>Lets put this text in a html tag.</p> 

Mein Problem war, ein wenig härter, da ich hatte:

Vorlage

{{#foo}} 
    {{bar}} 
{{/foo}} 

So ist die text zum Helfer nur "{{bar}}" Hogan.js

"foo": function() { 
    return function(text) { 
// First get the rendered bar variable 
     var bar = Hogan.compile(text).render(this)); 
     return "<p>" + bar + "</p>" 
    }