Chciałbym wstępnie skompilować szablony Handlebars, ale nie jestem pewien, jak to działa w trybie programowania.Jak korzystać z prekompilowanych szablonów w Handlebars z RequireJS?
Czy często stosuje się proces w tle, np. Guard, aby stale monitorować zmiany w plikach szablonu kierownicy?
Używam RequireJS do wciągania szablonów; np:
define(['jquery', 'handlebars', 'text!templates/my_template'], function($, Handlebars, myTemplate) {
// ...
var data = {"some": "data", "some_more": "data"};
var templateFn = Handlebars.compile(myTemplate);
$('#target').append(templateFn(data));
// ...
});
Rozumiem raz szablony są skompilowane, można by to zrobić:
define(['jquery', 'handlebars'], function($, Handlebars) {
// ...
var data = {"some": "data", "some_more": "data"};
var template = Handlebars.templates['my_template'];
$('#target').append(template(data));
// ...
});
Uwaga Poniższa o w drugim fragmencie kodu: Moduł
- W RequireJS nie dłużej ciągnie szablon.
- Funkcja Handlebars.compile() nie jest już używana.
Zwykle miałabym mieć Ochronę, aby moje szablony były kompilowane za każdym razem, gdy modyfikacje na poziomie systemu plików mają miejsce w plikach szablonów?
Zasadniczo moje pytanie brzmi:, czy deweloperzy zamierzają to zrobić?
Używam również Railsów, więc może jest jakaś czarna magia, jak sass-rails.
Tak! Współpracownik wspomniał o potrzebie-handlebars-plugin po tym, jak opublikowałem to pytanie, i jest doskonały! Ma nawet wsparcie dla i18n, co czyni go jeszcze bardziej niesamowitym. Przetestowałem to i działa jak w reklamie. Nie wymaga żadnych zmian kodu z trybu programowania do wersji produkcyjnej i używa r.js do kompilacji, którą można podłączyć do procesu kompilacji. Szablony są wstawiane do wbudowanego pliku.Wszystko, co musi się zmienić w produkcji, to tag skryptu zawierający require.js + data-main ..., który może być obsługiwany przez menedżera zasobów. –
Od ostatniej wersji funkcjonalność i18n została usunięta. – magiccrafter