如何预编译handlebars.js的部分?
我正在使用handlebars.js,我想开始预编译一切,但我似乎无法find预编译部分的方法。 我的大部分模板实际上是部分。 我试图把我的他们像普通的模板,但他们称为部分不起作用。
有没有什么方法可以预编译部分,或者,可以从另一个模板中调用一个模板?
我发现了一个更好的方法:将所有的偏分量作为模板进行预编译,然后在代码中使用它们之前添加下面的代码:
Handlebars.partials = Handlebars.templates;
改进之处在于:1)更短,2)调用父模板时,不会丢失可能传入的自定义帮助器。
正如在GitHub上提到的,Handlebars CLI中已经添加了-p
标志。
所以你可以使用handlebars my_partial.handlebars -p -f output.js
我正在使用HandleBars v3.0.3,并且我已经在一个文件中预编译了部分模板而不是部分模板。
这个线程有点混乱,所以我总结工作的解决scheme。
- 预编译时不要使用-p操作符。
- 不要使用Handlebars.registerPartial('myPartial','{{name}}')注册部分模板。
- 使用Nathan提出的通过Handlebars.partials = Handlebars.templates将部分对象映射到模板对象的build议;
- 按名称引用部分模板{{>名称}}
仍然不确定预编译部分,但这是如何从这个问题的帮助下从另一个模板中调用一个模板: 模板组合的把手助手
// instead of {{> partialName}} use {{partial "templateName"}} Handlebars.registerHelper('partial', function(templateName,context){ return new Handlebars.SafeString(Handlebars.templates[templateName](this)); });
我设法通过预编译我的所有部分作为模板,然后调整Nathans解决scheme来实现它
// instead of {{> partialName}} use {{partial "templateName"}} Handlebars.registerHelper('partial', function (templateName) { return new Handlebars.SafeString(JST[templateName](this)); });
所以对我来说Handlebars.templates
成了JST
当我编译的东西,我注意到在我编译的模板文件。