我目前正在开发一个应用程序,其中我已经构建了聊天功能。
我目前有一种非常有限的方式来创建对话,在此期间创建对话的用户和指定的目标用户都将其ID放入对话集合中的对话文档中。
我目前正在尝试遍历包含每个ID的数组,并在找到与当前用户不匹配的ID时,抓取其他用户个人资料信息。
otherUserName: function(){
for ( i = 0; i < this.users.length; i++ ) {
if( this.users[i].id !== Meteor.user()._id){
return( Meteor.users.findOne({ _id: this.users[i].id }));
}
}
}
目前,它不会输出任何内容。它只显示为未定义。
我需要做些什么才能让名字出现?
答案 0 :(得分:0)
I have a similar problem,但在服务器端。当您需要客户端上的用户集合时,您必须发布它并订阅它。
我在服务器端有一个带有
的publication.jsMeteor.publish("users", function () {
return Meteor.users.find();
});
使用
在lib文件夹(对于客户端和服务器)中的router.jsRouter.configure({
layoutTemplate: 'layout',
loadingTemplate: 'loading',
notFoundTemplate: 'notFound',
waitOn: function() { return [Meteor.subscribe('events'), Meteor.subscribe('users')]; }
});
现在应该可以在客户端访问用户集合。也许尝试将发布功能限制为几个属性而不是所有属性。
答案 1 :(得分:0)
答案就是将返回的值转换为字符串:
otherUserName: function(){
for ( i = 0; i < this.users.length; i++ ) {
if( this.users[i].id !== Meteor.user()._id){
var user = String(this.users[i].id);
return Meteor.users.findOne({ _id: user }).profile.name;
}
}
},