Estoy usando el motor de plantillas de subrayado de la red troncal con los patrones de formato de bigote.plantilla de red troncal/subrayado en formato de bigote que causa un error en el símbolo # libra/hash?
Ya lo he usado con éxito en otro lugar del proyecto, pero ahora por primera vez estoy usando los patrones de lista de bucles de bigote para rellenar la plantilla que arroja un error que estoy un poco desconcertado. El error en cromo es:
"Uncaught SyntaxError: Unexpected token ILLEGAL"
y puntos de función de plantilla de subrayado en el trazado inverso, que es bastante inútil pero en Firebug me sale un error más útiles de esta manera:
Sugiriendo que el símbolo de hash '#' es el problema, lo cual tendría sentido ya que sé que el bigote funciona bien, ya que hay muchas otras partes del proyecto que lo usan bien, también esta es la primera vez que estoy usando el hash sybol en mis plantillas. Parece un problema con la función de bucle o con la interpola configuración de la configuración/plantilla para subrayado.
Aquí está el dato relevante de mi plantilla:
<div class="thumblist thumblistleft" id="currentprojectslist">
<div class="thumb-list-header">
<h2>current projects</h2>
</div>
<div class="thumb-list-area">
<ol>
{{#worklist}} <!----- LOOK HERE --->
{{#current}}
<li><a>{{title}}</a></li>
{{/current}}
{{/worklist}}
</ol>
</div>
</div>
y aquí es una muestra de la JSON (que todos valida fina)
{blah blah blah lot in here before,"worklist":[{"thumb":"img/project-s.jpg","id":"340","title":"Test Project One","desc":"big load of content here","current":true}], and so on....}
estaba inicialmente siguiendo este ejemplo aquí por referencia: http://mustache.github.com/#demo
AHORA HERES DONDE PIENSO QUE EL PROBLEMA PUEDE SER:
underscore.js sugiere el uso de este antes de renderizar una plantilla bigote:
_.templateSettings = {
evaluate : /\{\[([\s\S]+?)\]\}/g,
interpolate : /\{\{([\s\S]+?)\}\}/g
};
también:
interpolate : /\{\{(.+?)\}\}/g
También a la declaración de interpolación, He intentado tanto. Sin embargo, mi conocimiento de la expresión regular es realmente pobre y tengo la sensación de que no puede acomodar el hash? En cualquier caso ... Estoy totalmente perplejo. ¿Alguien me puede ayudar aquí?
¿es posible hacer un bucle como este? buscando en la fuente de subrayado no estoy seguro: http://documentcloud.github.com/underscore/docs/underscore.html#section-120
Muchas gracias
El patrón '/ \ {\ {([\ s \ S] +?) \} \}/g' coincidirá con' {{# foo}} 'y captura' # foo'. Podría evitar capturar el hash usando '/ \ {\ {#? ([\ S \ S] +?) \} \}/G', aunque creo que causará otros problemas. – Qtax
¿alguna vez te las arreglaste para hacer un bucle así? Realmente me gustaría, es muy molesto en subrayado escribir un simple si en varias líneas de evaluación para comprobar si hay una bandera presente en mi JSON. – Daniel
hey, por desgracia subrayar no lo hará de forma nativa, debe incluir mustache.js y hacer bigote.render, como a continuación ... Es realmente molesto estoy de acuerdo – Alex