2012-03-21 28 views
8

Fuera de la caja de plantillas subrayado utiliza los marcadores <%= %> de crudo, y <%- %> para HTML escaparon contenido.Subrayado de plantillas - cambiar los marcadores símbolo

Sé que usted puede cambiar los marcadores de usar algo como:

_.templateSettings.interpolate = /\{\{(.+?)\}\}/g; 

Pero, ¿cómo se relaciona esto con prima y escaparon contenido? Me parece que terminaste con un solo tipo de marcador. ¿O he pasado por alto algo?

Respuesta

15

El Underscore.js documentation dice esto (el subrayado es nuestro):

Si delimitadores de estilo ERB no son su taza de té, usted puede cambiar la configuración de la plantilla de guión bajo al utilizar diferentes símbolos para hacer estallar código interpolada. Defina una expresión regular de interpolación para hacer coincidir expresiones que deben interpolarse literalmente, una expresión de escape para hacer coincidir las expresiones que deben insertarse después de ser HTML escapado y una evaluación de expresiones regulares para hacer coincidir expresiones que deben evaluarse sin inserción en la cadena resultante.

lo que sólo puede dar el objeto _.templateSettings una propiedad escape:

_.templateSettings.escape = /\{\{-(.*?)\}\}/g 
>>> compiled = _.template("Escaped: {{- value }}\nNot escaped: {{ value }}") 
>>> compiled({value: 'Hello, <b>world!</b>'}) 
"Escaped: Hello, &lt;b&gt;world!&lt;&#x2F;b&gt; 
Not escaped: Hello, <b>world!</b>" 
+1

Ah gracias - perdida que poco. Sería más útil si incluyesen ambas configuraciones en el código de ejemplo. – UpTheCreek

Cuestiones relacionadas