如何在meteor 0.8版本中加载动态模板?

时间:2014-04-21 12:49:45

标签: meteor

我希望动态加载模板,而不使用路由器包但使用会话。 功能是,我有两个模板"注册"和"登录"。当我点击Login时,它必须打开登录页面模板,与Register相同。 我通过这段代码来解决,但没有成功。

<body>
    {{> content}}
</body>

<template name="content">
    {{renderTemplate}}
</template>

内容助手

Template.content.helpers({
    'renderTemplate': function(){
        return new Handlebars.SafeString(
            Template[Session.get('currentTemplate')]({dataKey: 'someValue'})
    }
})

请帮助解决方案。提前致谢

1 个答案:

答案 0 :(得分:1)

当您升级到0.8时,您应该已经收到必读页面的URL。此页面告诉您模板不再是函数,并且不返回字符串:

https://github.com/meteor/meteor/wiki/Using-Blaze#templatefoo-is-not-a-function-and-does-not-return-a-string

这就是为什么这不起作用:

Template[Session.get('currentTemplate')]({dataKey: 'someValue'})

您可以返回模板对象。但是在调用renderTemplate之前,您需要以某种方式更改数据上下文。我不能告诉你如何,因为我不知道所有模板对他们的数据需要什么。

Template.content.helpers({
    'renderTemplate': function(){
        return Template[Session.get('currentTemplate')];
   }
});

<强>更新: 请务必使用链接页面中描述的{{> renderTemplate}},而不是{{renderTemplate}}