在 Meteor 模板中访问嵌套数组中的对象
Access object in nested array in Meteor templates
我有用户table,其单个文档的结构如下
{
"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}}
这是您的模板代码
{{#each followers}} {{ profile.name}} {{ followers}} {{/each}}
正确的模板代码
{{#each followers}}
{{profile.name}}
{{#each this.followers}}
{{name}}
{{/each}}
{{/each}}
这将为您提供个人资料所有者的姓名以及该个人资料的关注者。
已修复。
问题是 Meteor.users.find()
returns 只有有限的字段。首先,我尝试在发布 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}}
我有用户table,其单个文档的结构如下
{
"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}}
这是您的模板代码
{{#each followers}} {{ profile.name}} {{ followers}} {{/each}}
正确的模板代码
{{#each followers}}
{{profile.name}}
{{#each this.followers}}
{{name}}
{{/each}}
{{/each}}
这将为您提供个人资料所有者的姓名以及该个人资料的关注者。
已修复。
问题是 Meteor.users.find()
returns 只有有限的字段。首先,我尝试在发布 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}}