2012-02-03 9 views
7

Estoy intentando precompilar una plantilla de Handlebars.js app/views/templates/walrus.handlebar con el comando handlebar app/views/templates/walrus.handlebar pero falla porque la plantilla usa un helper personalizado que he definido en un archivo js separado public/javascripts/handlebar_helpers.js.¿Cómo se registra un ayudante de encargo si está Precompilar un ayudante costumbre en Handlebars.js?

Como llamar en la versión de línea de comandos de manillares por lo que es consciente del archivo javascript con el ayudante de encargo?

+0

¿Alguna vez encontrar cómo hacerlo? – emzero

Respuesta

5
handlebars <input> -f <output> -k <helper> 

Está en los documentos aquí: http://handlebarsjs.com/precompilation.html

edición de marzo de 2014:

Para las personas que tienen problemas de lectura de la documentación, aquí está un ejemplo para ayudante de encargo "nombre completo"

handlebars myTemplate.handlebars -f handlebars-fullname.js -k fullname 

con este ayudante:

Handlebars.registerHelper('fullname', function(person) { 
    return person.firstName + " " + person.lastName; 
}); 

Usted todavía tiene que incluir el ayudante en la página con el handlebars.runtime.js

+0

@wusher ¿Cómo era su llamada? No estoy seguro de cómo -k se usa con ayudantes personalizados. – surjikal

+0

Esto no funcionará con los ayudantes personalizados – Jaseem

+0

estoy buscando la respuesta a esto. '-k' solo funciona para helpers nativos, no personalizados ... – emzero

0
handlebars myTemplate.handlebars -f handlebars-fullname.js -k fullname 

El paso anterior no es obligatoria una, la plantilla del manillar funcionaría incluso si no especifique el nombre del ayudante durante la pre compilación, sin embargo, el siguiente código (que básicamente debe contener todos sus ayudantes) necesita ser insertada en el lado del cliente

Handlebars.registerHelper('fullname', function(person) { 
    return person.firstName + " " + person.lastName; 
}); 

he intentado esto y funciona como un encanto!

Cuestiones relacionadas