Pasar variables a las manillas llamada de ayuda

Me gustaría pasar datos de plantilla a un método de ayuda "campo de text" que he definido, como este:

{{textfield label="{{label}}" id="account_{{attributes.id}}" name="account[{{attributes.name}}]" class="some-class" requinetworking="true"}} 

(tenga en count las references {{label}} y {{attributes.id}} dentro de la llamada de ayuda {{textfield}})

Aquí es donde configuro la plantilla:

 data = { "attributes": { "id": "name", "name": "name" }, "label": "Name" } var templateHtml = 'markup here'; var template = Handlebars.compile(templateHtml); var formHtml = template(data); 

Aquí hay un jsFiddle .

Cuando ejecuto esto, todavía veo {{placeholders}} en el marcado comstackdo.

¿Cómo puedo lograr esto?

2 Solutions collect form web for “Pasar variables a las manillas llamada de ayuda”

Está utilizando la syntax incorrecta para pasar parameters con nombre a su ayudante de manubrio. Lo que quieres es algo como esto:

 var data = { "attributes": { "name": "name" } } var templateHtml = '{{textfield name=attributes.name}}'; var template = Handlebars.compile(templateHtml); var formHtml = template(data); 

Y un violín actualizado: http://jsfiddle.net/3yWn9/1/

Bueno, parece que comstackr la plantilla funciona dos veces. Apesta desde el punto de vista de la eficiencia, pero es lo que es. Si alguien tiene una solución alternativa, por favor publique.

 var data = { "something": "value", "id": "theId", "theClass": "class-here", "value": "the value" }; var markup = $('#test-template').html(); var template = Handlebars.compile(markup); var compiled = template(data); var template2 = Handlebars.compile(compiled); var compiled2 = template2(data); $('body').append(compiled2); 

Aquí hay un jsFiddle nuevo que demuestra la compilation doble.

Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.