我是Meteor.js的新手并且遇到了问题。
我将用户对象传递给配置文件模板,例如:
{
_id: "D8JpXRQskm3grykjg",
username: "foo",
profile: {communities: ["AkGCakz6mSgMb8qyS", "j8aB3i5iscrC4ehkA"]},
}
<template name="profile">
<h1> {{username}}: {{_id}} </h1>
<h3>Communities</h3>
<hr>
{{#each profile.communities}}
{{> communityItem}}
{{/each}}
</template>
问题是我已经编写了一个我在其他地方使用的communityItem模板,它接受了communityName。有没有办法可以编写辅助函数,传入可返回社区名称列表的communityIds列表?我想:
...
{{#each getCommunityNames(profile.communities)}}
{{> communityItem}}
{{/each}}
...
我很可能以错误的方式接近问题,或者不以“Spacebars”的方式写作。谢谢!
答案 0 :(得分:1)
Template.myTemplate.helpers({
getCommunityNames: function(commIds) {
var communities = Communities.find({_id: {$in: commIds}}).fetch();
return _.pluck(communities, 'name'); // returns ['Name 1', 'Name 2'];
}
});
注意,语法 方法 param 而非方法(参数)
{{#each getCommunityNames profile.communities}}
{{>communityItem}}
{{/each}}