我有一个用户表,其结构如下所示,用于单个文档
{
"profile" : {
"name" : "new user",
"gender" : ""
},
"followers" : [
{
"id" : "yQLrjsbAnKHW7Zoef",
"name" : "vid vid"
},
{
"id" : "bGLrjsbAnKHW7Zoef",
"name" : "sid sid"
}
]
}
我的助手功能是
Template.followers.helpers({
followers: function () {
return Meteor.users.find({_id: Meteor.userId()},{_id:0,followers:1, profile:1});
}
});
现在我想将关注者的数据显示为:
name: Vid
name: Sid
基本上我想访问模板中的followers数组中的元素。 目前它的
{{#each followers}}
{{ profile.name}}
{{ followers}}
{{/each}}
答案 0 :(得分:0)
这是您的模板代码
{{#each followers}} {{ profile.name}} {{ followers}} {{/each}}
更正模板代码
{{#each followers}}
{{profile.name}}
{{#each this.followers}}
{{name}}
{{/each}}
{{/each}}
这将为您提供个人资料持有人的姓名以及该个人资料的关注者。
答案 1 :(得分:0)
修正了它。
问题是Meteor.users.find()
仅返回有限的字段。首先,我尝试在users
发布但不起作用的方法中使用字段说明符。以下是我的所作所为:
在服务器端,声明的新变量为:
UserProfiles : = Meteor.users;
添加了新的发布方法,其中我指定了我需要的字段: 在这里输入代码
Meteor.publish('UserProfiles', function () {
return UserProfiles.find({},{
fields : {
'followers' : 1,
'profile' : 1,
'createdAt' : 1
}
});
});
在客户端添加以下行:
UserProfiles : = Meteor.users;
Meteor.subscribe("UserProfiles");
然后在我的文件中,我发出了一个查询并返回:
users: function (){
return UserProfiles.find(selector, {
fields : {
'followers' : 1,
'profile' : 1,
'createdAt' : 1
}
});
}
内部模板代码:
{{#each users}}
Follower of {{profile.name}}
{{#each followers}}
{{> follower}}
{{/each}}
{{/each}}