在流星模板之间传递多个参数

时间:2015-04-28 10:18:29

标签: javascript meteor

我有一个父模板和一个子模板。我想将数据上下文和其他几个参数从父级传递给子级。 到目前为止,以下代码无效

<template name='parent'>
  {{#each arrayFromHelper}}
     {{> child this groupName='biggroup'}}
  {{/each}} 
</template>

<template name='child'>
 {{this}}
 {{groupName}} 
</template>

我无法访问子模板中的groupName。

1 个答案:

答案 0 :(得分:2)

您有两种选择:

重命名上下文并添加更多变量

{{> child data=this groupName='biggroup'}}

现在child可以访问父上下文和groupName。唯一的技巧是你需要通过data命名空间(或你选择调用它的任何东西)来访问上下文,这看起来有点冗长。

<template name='child'>
 {{data.someValue}}
 {{groupName}}
</template>

在帮助程序中扩展上下文

向父模板添加一个帮助器,扩展其上下文,如下所示:

Template.parentTemplate.helpers({
  context: function() {
    var result = _.clone(this);
    result.groupName = 'biggroup';
    return result;
  }
});

然后在你的模板中你可以这样做:

{{> child context}}

child模板将具有父上下文和groupName。这是我喜欢的技术。

如果您更愿意使用全球帮助者,请参阅我对this question的回答。