var compiledTemplate = Handlebars.getTemplate('hello');
var html = compiledTemplate({ name : 'World' });
So, wenn Sie vorkompilierte die Vorlagen (ideal für die Produktion verwenden), wird es direkt zu finden, sonst holt sich die Vorlage aus und kompilieren Sie es in den browser (das ist, wie Sie arbeiten in der Entwicklung).
Hier ist eine Beispiel-Funktion akzeptiert eine URL zu einer LENKER-Vorlage, und eine callback-Funktion. Die Funktion lädt die Vorlage und ruft die callback-Funktion mit den gesammelten LENKER-Vorlage als parameter:
function loadHandlebarsTemplate(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var raw = xhr.responseText;
var compiled = Handlebars.compile(raw);
callback(compiled);
}
};
xhr.send();
}
Nehmen wir beispielsweise an, Sie haben eine LENKER-Vorlage definiert in einer Datei namens /templates/MyTemplate.html wie:
<p>The current date is {{date}}</p>
Können Sie dann laden Sie die Datei, kompilieren und Rendern der UI, wie diese:
var url = '/templates/MyTemplate.html';
loadHandlebarsTemplate(url, function(template) {
$('#container').html(template({date: new Date()}));
});
Eine noch bessere Lösung wäre es, vor-kompilieren der templates, die beschleunigen würde die Zeit, die Sie ergreifen, um zu laden. Mehr info auf Vorkompilierung finden hier.
Für diejenigen, die bekommen hier über Google suchen wie ich es Tat, fand ich endlich die perfekte Antwort in diesem post, check it out :
http://berzniz.com/post/24743062344/handling-handlebarsjs-like-a-pro
Grundsätzlich müssen Sie implementieren eine Methode getTemplate :
und dann rufen Sie Ihre Vorlage mit :
So, wenn Sie vorkompilierte die Vorlagen (ideal für die Produktion verwenden), wird es direkt zu finden, sonst holt sich die Vorlage aus und kompilieren Sie es in den browser (das ist, wie Sie arbeiten in der Entwicklung).
Können Sie AJX, um diese zu laden.
Hier ist eine Beispiel-Funktion akzeptiert eine URL zu einer LENKER-Vorlage, und eine callback-Funktion. Die Funktion lädt die Vorlage und ruft die callback-Funktion mit den gesammelten LENKER-Vorlage als parameter:
Nehmen wir beispielsweise an, Sie haben eine LENKER-Vorlage definiert in einer Datei namens /templates/MyTemplate.html wie:
Können Sie dann laden Sie die Datei, kompilieren und Rendern der UI, wie diese:
Eine noch bessere Lösung wäre es, vor-kompilieren der templates, die beschleunigen würde die Zeit, die Sie ergreifen, um zu laden. Mehr info auf Vorkompilierung finden hier.
Editiert Lösung von Jeremy Belolo für die Arbeit mehr Vorlagen in den Verzeichnissen, wenn ich nicht wollen alle Vorlagen in
templates
Verzeichnis.Mit
async: false;
ist weit davon entfernt, die perfekte Lösung. Mit jQuery in Ihren Werkzeugkasten, machen nur die Verwendung von $.Latente.Kam ich auf diese Lösung: