如何从客户端访问 Meteor.users() 字段?
How to access Meteor.users() fields from the client?
我想从客户端访问用户的电子邮件,
这是我在服务器端所做的:
Meteor.publish('userList', function (){
return Meteor.users.find({}, {fields:{emails: 1, profile: 1}});
});
在客户端:
Template.usersManagement.onCreated(function () {
var self = this;
self.autorun(function() {
self.subscribe('userList');
});
});
以及用于检索用户的模板助手:
Template.usersManagement.helpers({
allUsers: function() {
console.log(Meteor.users.find({}).fetch())
return Meteor.users.find({}).fetch()
}
})
在 usersManagement
模板中:
{{#each allUsers}}
<h1>{{this.emails.address}}</h1>
<h1>{{this.profile.name}}</h1>
{{/each}}
显示了用户名,但没有显示电子邮件,并且控制台中没有显示任何错误。
以下是用户在数据库中的存储方式:
{
"_id" : "m7admvZc32Jr3SeiE",
"createdAt" : ISODate("2017-12-27T21:24:48.927Z"),
"services" : {
"password" : {
"bcrypt" : "a$wv6KsRp6s91A.0mHH89Q0eT3jrZmJjKJhw8SIH9c8c8OpwMrXyGMC"
}
},
"emails" : [
{
"address" : "222@222.com",
"verified" : false
}
],
"profile" : {
"name" : "222",
"createdAt" : ISODate("2017-12-27T21:24:48.707Z"),
"updatedAt" : ISODate("2017-12-27T21:24:48.707Z"),
"group" : "admin"
},
"status" : {
"online" : false
}
}
我的问题是,如何检索用户的电子邮件?
编辑
以下是(从控制台)检索电子邮件的方式:
电子邮件下方还有另一个字段 (0)。我尝试了 this.emails.0.address
它没有用(绝望的尝试)
你的拼命尝试几乎成功了,试试这个:
this.emails.[0].address
Meteor.users
集合存储 emails as an array 中的一项,以便您能够为每个用户存储多个电子邮件地址。那么既然如此,正确的做法应该是:
<h1>{{this.emails[0].address}}</h1>
我想从客户端访问用户的电子邮件, 这是我在服务器端所做的:
Meteor.publish('userList', function (){
return Meteor.users.find({}, {fields:{emails: 1, profile: 1}});
});
在客户端:
Template.usersManagement.onCreated(function () {
var self = this;
self.autorun(function() {
self.subscribe('userList');
});
});
以及用于检索用户的模板助手:
Template.usersManagement.helpers({
allUsers: function() {
console.log(Meteor.users.find({}).fetch())
return Meteor.users.find({}).fetch()
}
})
在 usersManagement
模板中:
{{#each allUsers}}
<h1>{{this.emails.address}}</h1>
<h1>{{this.profile.name}}</h1>
{{/each}}
显示了用户名,但没有显示电子邮件,并且控制台中没有显示任何错误。
以下是用户在数据库中的存储方式:
{
"_id" : "m7admvZc32Jr3SeiE",
"createdAt" : ISODate("2017-12-27T21:24:48.927Z"),
"services" : {
"password" : {
"bcrypt" : "a$wv6KsRp6s91A.0mHH89Q0eT3jrZmJjKJhw8SIH9c8c8OpwMrXyGMC"
}
},
"emails" : [
{
"address" : "222@222.com",
"verified" : false
}
],
"profile" : {
"name" : "222",
"createdAt" : ISODate("2017-12-27T21:24:48.707Z"),
"updatedAt" : ISODate("2017-12-27T21:24:48.707Z"),
"group" : "admin"
},
"status" : {
"online" : false
}
}
我的问题是,如何检索用户的电子邮件?
编辑
以下是(从控制台)检索电子邮件的方式:
电子邮件下方还有另一个字段 (0)。我尝试了 this.emails.0.address
它没有用(绝望的尝试)
你的拼命尝试几乎成功了,试试这个:
this.emails.[0].address
Meteor.users
集合存储 emails as an array 中的一项,以便您能够为每个用户存储多个电子邮件地址。那么既然如此,正确的做法应该是:
<h1>{{this.emails[0].address}}</h1>