我有一个父模板和一个子模板。我想将数据上下文和其他几个参数从父级传递给子级。 到目前为止,以下代码无效
<template name='parent'>
{{#each arrayFromHelper}}
{{> child this groupName='biggroup'}}
{{/each}}
</template>
<template name='child'>
{{this}}
{{groupName}}
</template>
我无法访问子模板中的groupName。
答案 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的回答。