Meteor accounts-password,显示所有用户的邮箱
Meteor accounts-password, display emails of all user
我是 Meteor 的新手。出于学习目的,我只想列出所有用户的电子邮件。但是只能看到登录用户的电子邮件。
备注:
- 我正在使用 Meteor 1.4.2
- 我在开发环境中。所以我
尚未删除 'insecure' 或 'autopublish'。我知道这很糟糕
实践。但这只是为了快速入门。
我的模板助手看起来像:
Template.usersList.helpers({
users () {
return Meteor.users.find({}, {fields: {'username': 1, emails:1}});
},
email(){
if(typeof this.emails === 'undefined'){
console.error(this.emails, "Unauthorized Attempt");
return "--NaN--";
} else {
return this.emails[0].address;
}
}
});
Blaze 模板:
<template name="usersList">
This is Users List
<ul>
{{#each users}}
<li>{{username}} | {{email}}</li>
{{/each}}
</ul>
</template>
结果,它显示了所有用户的用户名。并且只显示登录用户的电子邮件。对于其他用户,"emails" 数组返回为未定义。
jessica | dad@email.com
Waqas | --NaN--
Bob | --NaN--
在以上结果中,jessica 已登录用户。无法查看其他用户的电子邮件。
谁能告诉我如何为所有用户显示电子邮件。或者请指出正确的方向?
谢谢,
艾哈迈德
您可以在服务器上添加:
Meteor.publish("userData", function () {
return Meteor.users.find();
});
在客户端上:
Meteor.subscribe("userData");
有关详细信息,请参阅 documentation。
请注意,您可能希望限制最终实际发布给客户的内容。但我想你明白了。 Meteor.users
只是一个集合,因此您可以像发布任何其他集合一样从中发布。
刚发现我不得不使用pub/sub。所以,以下对我有用:
// 在服务器中
Meteor.publish("userList", function () {
return Meteor.users.find({}, {fields: {emails: 1}});
});
// 在客户端
Meteor.subscribe("userList");
我是 Meteor 的新手。出于学习目的,我只想列出所有用户的电子邮件。但是只能看到登录用户的电子邮件。
备注:
- 我正在使用 Meteor 1.4.2
- 我在开发环境中。所以我 尚未删除 'insecure' 或 'autopublish'。我知道这很糟糕 实践。但这只是为了快速入门。
我的模板助手看起来像:
Template.usersList.helpers({
users () {
return Meteor.users.find({}, {fields: {'username': 1, emails:1}});
},
email(){
if(typeof this.emails === 'undefined'){
console.error(this.emails, "Unauthorized Attempt");
return "--NaN--";
} else {
return this.emails[0].address;
}
}
});
Blaze 模板:
<template name="usersList">
This is Users List
<ul>
{{#each users}}
<li>{{username}} | {{email}}</li>
{{/each}}
</ul>
</template>
结果,它显示了所有用户的用户名。并且只显示登录用户的电子邮件。对于其他用户,"emails" 数组返回为未定义。
jessica | dad@email.com
Waqas | --NaN--
Bob | --NaN--
在以上结果中,jessica 已登录用户。无法查看其他用户的电子邮件。
谁能告诉我如何为所有用户显示电子邮件。或者请指出正确的方向?
谢谢, 艾哈迈德
您可以在服务器上添加:
Meteor.publish("userData", function () {
return Meteor.users.find();
});
在客户端上:
Meteor.subscribe("userData");
有关详细信息,请参阅 documentation。
请注意,您可能希望限制最终实际发布给客户的内容。但我想你明白了。 Meteor.users
只是一个集合,因此您可以像发布任何其他集合一样从中发布。
刚发现我不得不使用pub/sub。所以,以下对我有用:
// 在服务器中
Meteor.publish("userList", function () {
return Meteor.users.find({}, {fields: {emails: 1}});
});
// 在客户端
Meteor.subscribe("userList");