meteor实例化变量模板

时间:2013-09-19 16:57:09

标签: templates meteor

我在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字符串,模板将不再更新。

我认为这很常见,但我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:3)

没有>标记即可。这是路由器中的方法renderPage帮助程序,或铁路由器中的yield已定义。

html:

{{currentPage}}

JS:

Handlebars.registerHelper('currentPage', function(...) {
    var currentTemplate = ...;
    var templateData = ...;
    return new Handlebars.SafeString(Template[currentTemplate](templateData));
});

如果您不需要,可以省略templateData部分。