我为一个数组执行每个循环,我在一个帮助器中构建:
Template.article.helpers({
section: function() {
return [
{type: 'cars', sectionTitle: 'Cars'},
{type: 'vegetables', sectionTitle: 'Vegetables'}
];
},
});
文章的数据来自路由器:
Router.route('/article/:_id', {
name: 'article',
data: function() {
return {
article: Articles.findOne({ _id: this.params._id })
}
}
});
但是现在我想要使用帮助器的article
访问type
的子元素。因此,在此示例中,每个循环将完成两次:我首先要使用../article.cars
然后../article.vegetable
。我希望你理解我的问题。我想通过帮助程序类型获取子元素的名称:
<template name="article">
{{#each section}}
<h1>{{this.sectionTitle}}</h1>
<ul>
{{#each ../article.type}} <!-- should get '../article.cars' and '../article.vegetable' -->
<li>{{this.title}}</li>
{{/each}}
</ul>
{{/each}}
</template>
我想将type
的内容用作变量名。如果类型为&#39; cars&#39;,那么我想使用../articles.cars'. Which would be something like
篇文章[&#39;汽车&#39;] which would result of
文章[type] . But in meteor this writing is not possible. And
articles.type `是不同的东西。
答案 0 :(得分:2)
只需使用其他助手:
s: function(article) {
return article[this.type];
}
并在空格键中发送参数:
{{#each s ../article}}