2013-12-13 11 views
6

Mam zamiar użyć Hogan.js do mojego następnego projektu. Próbowałem trochę tego eksperymentować. Po prostu utknąłem i nie mogłem się dowiedzieć, jak używać heldera w Hogan.js. Używałem wcześniej z Handlebars. Czy istnieje sposób na podobną rzecz na Hoganie?Jak mieć pomocników w Hogan.js

+0

lambda jest wszystko masz dla mnie wystarczy. masz konkretny problem, którego nie możesz rozwiązać za pomocą lambda? –

Odpowiedz

3

Od hogan.js official website:

Hogan.js został opracowany przed testowego pakietu wąsy, więc wszystko, co odnosi się do szablonów, jak określono tutaj, jest również w przypadku hogan.js.

Zapoznaj się z mustache manpage po dokładne objaśnienie funkcji. Zwłaszcza część w wyrażeniach lambda.

Poniżej przedstawiono przykładowe porównanie implementacji hogan.js i handlebars.js.

Szablon

{{#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>' 
    ); 
}); 

Wyjście

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

miałem trudności z tym, aż znalazłem this Hogan issue on Lambdas

To nie jest już potrzebny karnet oddać pomocnika.

Szablon

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

Hogan.js

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

Wyjście

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

Mój problem był trochę trudniejsze, ponieważ miałem:

Szablon

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

Więc text są przekazywane do pomocnika właśnie "{{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>" 
    } 
Powiązane problemy