我将用户数据存储在Meteor.users.profile
中,但我无法通过return命令检索它们。
代码如下所示:
Template.details.events({
'submit form': function(event) {
event.preventDefault();
var currentUser = Meteor.userId();
var name = event.target.nam.value;
var age = event.target.nombor.value;
// var gender = event.target.sex.value;
// var gen = Meteor.user().profile.gender;
Meteor.users.update({
_id: currentUser
}, {
$set: {
"profile.name": name,
"profile.age": age
}
});
Router.go('/tryy');
}
});
Template.tryy.helpers({
'people': function() {
//var gender = Meteor.user().profile.gender;
return Meteor.users.find({}, {
gender: "gender"
});
}
});
HTML:
<template name="tryy">
<ul>
{{#each people}}
<li><a href="#"> {{name}} {{age}} </a></li>
{{/each}}
</ul>
</template>
这有什么问题:return Meteor.users.find({}, {gender: "gender"});
?
我希望看到与currentUser
相对的性别列表。
答案 0 :(得分:1)
首先,当助手中没有登录用户时,您应该处理这种情况:
Template.tryy.helpers({
'people': function() {
// you should deal with the situation when no current user
if (Meteor.user() === null) return null; // or others way you like
var gender = Meteor.user().profile.gender;
return Meteor.users.find({}, {
gender: "gender"
});
}
});
我认为在提出这些问题之前,你应该阅读Meteor document of Mongo collection和Mongo文件......
正如你问的那样:
要查找名称与对象属性(profile.name)匹配的用户:
Meteor.users.find({"profile.gender": gender});
其他一些有用的简单查询:
要查找名称显示在数组中的用户(假设它名为friends):
Meteor.users.find({"profile.name": friends});
如果我们有Alice,Bob,Cathy和朋友[&#39; Alice&#39;,&#39; Cathy&#39;],它会返回Alice和Cathy
总而言之,你应该仔细阅读这些文件,它会对你有所帮助: - )
答案 1 :(得分:0)
find()
的第一个参数是选择器,第二个参数是其他选项。在这种情况下,如果您想按性别查找用户,请使用选择器:
Meteor.users.find({"profile.gender": gender});
这将返回具有指定gender
的所有用户。另请查看非常详细的Meteor documentation。
此外,在您的模板中,您应该将name
更改为profile.name
(年龄相同),以及存储这些值的位置:
{{#each people}}
<li><a href="#"> {{profile.name}} {{profile.age}} </a></li>
{{/each}}