1

私の質問は本当に単純ですが、残念ながらどこにも見つかりませんでした。

たとえば、マップのコレクションがあり、 Meteor.user().profile.mapsId を使用して、そのユーザーがそのマップを表示できるかどうかを確認しています。

最初のアプローチ:

サーバー/server.js

Meteor.publish('map', function (mapOwner) {
  var user =  Meteor.user();
  var mapId = user.profile.mapId;
  return Map.find({mapOwner: mapId});
});

パブリッシュが Meteor.user(); を受け入れないため、機能しませんでした。

2 番目のアプローチ:

サーバー/server.js

    Meteor.publish('map', function (mapOwner) {
          return Map.find({mapOwner: Meteor.call('mapsCall')});
        });

コレクション/maps.js

Map = new Meteor.SmartCollection('map');

Meteor.methods({
  mapsCall: function() {
  var user = Meteor.user();
  var startupId = user.profile.startupId;
  return startupId;
  }
});

Map.find().fetch() を呼び出すと、何もありません..

正しいアプローチは何ですか?

4

1 に答える 1

3

Meteor.user()最初のアプローチは正しいように見えますが、発行機能では使用できないため、別の方法でユーザーをロードする必要があります。ただ行う:

var user = Meteor.users.findOne(this.userId);
于 2013-10-02T19:53:46.677 に答える