你能将动态变量传递给Meteor火焰模板吗?

时间:2015-07-04 19:49:35

标签: meteor meteor-blaze

我看到了对此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)执行此操作,但我想知道是否可以将动态变量传递到模板中?

2 个答案:

答案 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获取数据,则数据被视为被动。无论如何,每次对集合进行更新时,此更新都将被推送到模板。

对于您的情况,如果您通过currentUserMeteor.user()获得数据,则情况相同。

相关问题