我看到了对此stackoverflow帖子的回复:Is there a way to pass variables into templates in Meteor?
该帖子仅显示如何将静态值传递到blaze模板。请参阅以下示例 - 我正在尝试将user.username传递到模板cookieTemplate
<template name="userTemplate">
<p> Wellcome {{user.username}} </p>
{{#each user.profile.cookies}}
{{> cookieTemplate username={{user.username}} }}
{{/each}}
</template>
<template name="cookieTemplate">
{{username}} has cookie {{this.cookieName}}
</template>
我知道我可能会使用Session.set('username', blah)
执行此操作,但我想知道是否可以将动态变量传递到模板中?
答案 0 :(得分:2)
您的简单解决方案就是将用户对象传递给模板
{{> cookieTemplate user=user }}
并在模板中使用
{{user.username}}
或者你写下一些助手来创建一个具有相关属性的数据对象,如:
Template.userTemplate.helpers({
get_user: function() {
return { username: Template.instance().user.username }
}
然后使用
调用模板{{> cookieTemplate user=get_user }}
并使用
的值{{user.username}}
我为这个帖子做了一个与MeteorPad类似的东西(辅助函数) Access an object's property names in a Blaze template
也许它会帮助你
干杯, 汤姆
答案 1 :(得分:0)
是的,你可以而且可能已经这样做了。
通常,如果您通过自动发布或pub-sub获取数据,则数据被视为被动。无论如何,每次对集合进行更新时,此更新都将被推送到模板。
对于您的情况,如果您通过currentUser
或Meteor.user()
获得数据,则情况相同。