2012-12-10 19 views
5

Tworzę pomocnika do wyprowadzania 7 lub 8 linii kodu HTML, aby wyczyścić moje szablony (i dostosować się do DRY - hej, który rymuje - wikka wikka).Pomocnik kierownicy w requireJS

Oto przykład wywołanie pomocnika dodatek

{{#each promotion.CampaignColors}} 
    {{{addOn . CampaignColorType.Code CampaignColorType.Name HexColor "some content" "a title"}}} 
{{/each}} 

Teraz, z tego co rozumiem, wszystko po kontekście powinno być nazywany hash opcji. Oto fragment mojego addOn.js

Jednak opcje są ustawione tylko na mój pierwszy parametr, który jest przekazywany. Jeśli mogę zmienić podpis metody do:

function addOn(context, key, displayName, value, content, title, test, options) { 
... 
} 

.. każdy z moich wartości są ustawione, a opcje TERAZ staje się przedmiotem z pustego hash.

Zgłaszanie params jawnie działa, ale wolę raczej używać skrótu. Wszelkie przemyślenia, jak to zrobić?

Odpowiedz

4

Z Handlebars doc on helpers:

A Kierownice połączenie pomocniczy jest prosty identyfikatora następuje zero lub więcej parametrów (oddzielonych przestrzeni). Każdy parametr jest wyrażeniem Handlebars .
[...]
Pomoc dla kierownicy może również otrzymać opcjonalną sekwencję par klucz-wartość jako ich końcowy parametr (w dokumencie określane są jako argumenty mieszania ). Klucze w argumentach hash muszą być prostymi identyfikatorami, a wartości są wyrażeniami Handlebars. Oznacza to, że wartości mogą być prostymi identyfikatorami, ścieżkami lub ciągami.

Aby korzystać z parametrów jako hash, nazwałbyś swoją pomocnika jak

{{{addOn . Code=CampaignColorType.Code HexColor=HexColor Content="some content"}}} 

i będą one dostępne jako options.hash w swoim pomocnikiem

define(['handlebars'], function (Handlebars) { 
    function addOn(context, options) { 
     console.log(options.hash); 
    } 

    Handlebars.registerHelper('addOn', addOn); 
    return new Handlebars.SafeString(addOn); 
}); 
+0

mam nawet czytać tego dokumentu , a ja po prostu tęskniłem. Dzięki stary. –

Powiązane problemy