Javascript 如何显示此集合?
我试图使个人资料页,我需要显示一个模板的个人资料名称和生物。问题是我无法获取每个配置文件对象的Id。如果我能得到每个配置文件的Id,就像它是如何在postId中完成的一样。下面的代码是我认为它可以工作的方式,但没有。如果你告诉我如何获得身份证,那就太好了,谢谢Javascript 如何显示此集合?,javascript,meteor,user-profile,Javascript,Meteor,User Profile,我试图使个人资料页,我需要显示一个模板的个人资料名称和生物。问题是我无法获取每个配置文件对象的Id。如果我能得到每个配置文件的Id,就像它是如何在postId中完成的一样。下面的代码是我认为它可以工作的方式,但没有。如果你告诉我如何获得身份证,那就太好了,谢谢 Profile = new Meteor.Collection('profile'); Profile.allow({ update: ownsDocument }) Profile.deny({ update: func
Profile = new Meteor.Collection('profile');
Profile.allow({
update: ownsDocument
})
Profile.deny({
update: function(profileId, profile, fieldNames) {
return (_.without(fieldNames, 'bio').length > 0);
}
});
Accounts.onCreateUser(function(options, user){
Meteor.methods({
profile: function(postAttributes) {
var user = Meteor.user();
var profile = _.extend(_.pick(options.profile, 'bio'), {
userId: user._id,
profilename: user.username,
submitted: new Date().getTime(),
postsCount: 0, posts : []
});
var profileId = Profile.insert(profile);
return profileId;
}
});
return user;
});
在discover meteor示例中,他们使用一种方法插入一个
Post
,然后返回其id。在您的情况下,一个新的配置文件正在异步回调中插入,因此您无法返回id。但是,您知道用户id
,因此可以使用它来获取配置文件
服务器
Accounts.onCreateUser(function(options, user){
var user = Meteor.user();
var profile = _.extend(_.pick(options.profile, 'bio'), {
userId: user._id,
profilename: user.username,
submitted: new Date().getTime(),
postsCount: 0,
posts : []
});
Profile.insert(profile);
return user;
});
客户端
Template.profile.profile = function () {
return Profiles.findOne({userId: Meteor.userId()});
};
你似乎对一些流星的想法有点困惑
首先,Meteor.methods({…})是可以使用Meteor.call({})在客户端调用的函数
它们应该出现在顶层,而不是Accounts.onCreateUser等其他函数中
对于这个用例,我不明白为什么您需要一个方法。您所要做的就是检索将存储在数据中的数据,这些数据无论如何都会发送到客户端
如果您使用accounts base软件包,那么您将自动获得Meteor.users集合,这对于您想要做的事情来说是很好的。我认为没有必要收集个人资料
下面是一个流星板来说明这一点:
注:我将bio存储在用户的配置文件部分。这是因为默认情况下,用户可以编辑自己的配置文件部分,所以我可以在客户端执行Meteor.users.update(…)
这只是一个例子来展示一些概念。它确实有不好的做法。首先,我建议添加PackageAccounts ui并使用{{>loginButtons}}助手。它提供了错误检查等功能。我之所以没有使用它,是因为我想展示如何允许用户在创建帐户之前输入他们的个人简历,以及如何在帐户中使用。onCreateUser。您是否可以在源代码示例中添加一些缩进?没有它,很难阅读。另外,为什么要在onCreateUser
回调中定义post
方法?我相信这应该在全球范围内进行。好的,谢谢,我会尝试一下,现在就纠正输入错误,我的代码中的配置文件刚刚看起来我一定是打错了,我需要在创建新帐户时为每个用户创建一个配置文件。明白,但是这不是Meteor.methods
的设计目的。好吧,这只是我最常尝试的方法之一,没有包括Meteor.methods。任何帮助都很好,我对Meteor很陌生。从理论上讲,你将如何创造这一点。谢谢你帮我谢谢你帮了我唯一得不到的就是