Die Dokumentation zum Templating ist teilweise, ich habe mir die Quelle angesehen.
Die Funktion _.template hat 3 Argumente:
- String Text : die Vorlage Zeichenfolge
- Objektdaten : die Bewertungsdaten
- Objekteinstellungen : lokale Einstellungen, die _.templateSettings ist die globalen Einstellungen Objekt
Wenn keine Daten (oder Null) angegeben werden, wird eine Renderfunktion zurückgegeben. Es hat 1 Argument:
- Objektdaten : selber wie die Daten über
Es gibt 3 Regex-Muster und 1 statischen Parameter in den Einstellungen:
- RegExp- Auswertung : "<% code%>" in der Vorlagenzeichenfolge
- RegExp- Interpolation : "<% = Code%>" in der Vorlagenzeichenfolge
- RegExp- Escape : "<% - Code%>"
- String - Variable : optional, der Name des Daten Parameter in der Vorlage Zeichenfolge
Der Code in einem Bewertungsabschnitt wird einfach ausgewertet. Sie können der ausgewerteten Vorlage eine Zeichenfolge aus diesem Abschnitt mit dem Befehl __p + = "mystring" hinzufügen. Dies wird jedoch nicht empfohlen (nicht Teil der Vorlagenschnittstelle). Verwenden Sie stattdessen den Interpolationsabschnitt. Diese Art von Abschnitt dient zum Hinzufügen von Blöcken wie if oder for zur Vorlage.
Das Ergebnis des Codes im Interpolationsabschnitt wird der ausgewerteten Vorlage hinzugefügt. Wenn null zurückgegeben wird, wird eine leere Zeichenfolge hinzugefügt.
Der Escape- Abschnitt maskiert HTML mit _.escape für den Rückgabewert des angegebenen Codes. So sein ähnlich als ein _.escape (Code) in einem Interpolations - Abschnitt, aber es entkommt mit \ den Zeichen wie Leerzeichen \ n bevor er den Code an die gibt _.escape . Ich weiß nicht, warum das so wichtig ist, es steht im Code, aber es funktioniert gut mit der Interpolation und _.escape - was den Leerzeichen nicht entgeht - auch.
Standardmäßig wird die Daten wird der Parameter durch eine bestandene mit (Daten) {...} Aussage, aber diese Art der Auswertung ist viel langsamer als der mit dem Namen Variable auswertet. Die Daten mit dem Variablenparameter zu benennen ist also etwas Gutes ...
Beispielsweise:
var html = _.template(
"<pre>The \"<% __p+=_.escape(o.text) %>\" is the same<br />" +
"as the \"<%= _.escape(o.text) %>\" and the same<br />" +
"as the \"<%- o.text %>\"</pre>",
{
text: "<b>some text</b> and \n it's a line break"
},
{
variable: "o"
}
);
$("body").html(html);
Ergebnisse
The "<b>some text</b> and
it's a line break" is the same
as the "<b>some text</b> and
it's a line break" and the same
as the "<b>some text</b> and
it's a line break"
Weitere Beispiele zur Verwendung der Vorlage und zum Überschreiben der Standardeinstellungen finden Sie hier:
http://underscorejs.org/#template
Beim Laden von Vorlagen haben Sie viele Optionen, aber am Ende müssen Sie die Vorlage immer in eine Zeichenfolge konvertieren. Sie können es wie im obigen Beispiel als normale Zeichenfolge angeben oder es aus einem Skript-Tag laden und die .html () -Funktion von jquery verwenden, oder Sie können es aus einer separaten Datei mit dem tpl-Plugin von require.js laden .
Eine weitere Option, um den Dom-Baum mit Laconic zu erstellen, anstatt Vorlagen zu erstellen .