我在JS中有一个变量,例如可以是currentPage。
现在我想做这样的事情:
{{> currentPage}}
哪,当然不起作用!
我真的想写一个这样的Handlebars助手:
Handlebars.registerHelper('currentPage', function(context, options) {
var currentPage = ...;
return Handlebars._defaultHelpers(">",currentPage);
}
但不幸的是“>”未在Handlebars中注册为辅助函数,我不知道如何访问此代码。
我还可以想象使用这样的东西:
Handlebars.registerHelper('currentPage', function(context, options) {
var currentPage = ...;
document.body.appendChild(Meteor.render(Template[currentPage]));
return "";
});
哪种作品,但打破了更新系统。
如果我返回HTML字符串,模板将不再更新。
我认为这很常见,但我不知道如何解决这个问题。
答案 0 :(得分:3)
没有>
标记即可。这是路由器中的方法renderPage
帮助程序,或铁路由器中的yield
已定义。
html:
{{currentPage}}
JS:
Handlebars.registerHelper('currentPage', function(...) {
var currentTemplate = ...;
var templateData = ...;
return new Handlebars.SafeString(Template[currentTemplate](templateData));
});
如果您不需要,可以省略templateData
部分。