2

新しく作成されたすべてのユーザーに属性「許可」を追加しようとしました。しかし、それはどういうわけかうまくいきません。このコードを使用して属性を追加します

 Accounts.onCreateUser(function(options, user) {
  user.permission = 'default';
  if (options.profile)
    user.profile = options.profile;
  return user;
});

しかし、クライアント側でユーザー オブジェクトを取得すると、属性が表示されません

u = Meteor.users.findOne(Meteor.userId)
u.permission
>undefined

私は何を間違っていますか?

4

2 に答える 2

9

あなたはそれを適切に作成します。問題は、クライアントがこの値を認識しないことです。ドキュメントから取得:

デフォルトでは、サーバーはユーザー名、電子メール、およびプロファイルを公開します

そのため、追加のフィールドを公開/購読する必要があります。

サーバ:

Meteor.publish('userData', function() {
  if(!this.userId) return null;
  return Meteor.users.find(this.userId, {fields: {
    permission: 1,
  }});
});

クライアント:

Deps.autorun(function(){
  Meteor.subscribe('userData');
});
于 2013-07-31T07:10:40.170 に答える