1

特定のページからコレクション内のデータにアクセスするために何が欠けているか教えてもらえますか? イベント コレクションにはアクセスできますが、会場コレクションにはアクセスできません。コードは次のとおりです。

//Controller

UserController = AppController.extend({
  waitOn: function() {
    return this.subscribe('events');
    return this.subscribe('users');
    return this.subscribe('venues');
  },
  data: {
    venues: Venues.find({}),
    events: Events.find({}),
    users: Meteor.users.find()

  }
});

UserController.helpers({
    'myEvents': function() {
        var organizerId = Accounts.userId();
        return Events.find({organizerId: organizerId})
    },
    'myVenues': function() {
        return Venues.find({})
    }
});

パブリッシュ & パーミッション ファイルはイベントとベニューで同一であり、コントローラーは正しいページにルーティングされ、ベニュー コレクションは他のコントローラーを含むページから表示されます。

お時間をいただきありがとうございます!

4

1 に答える 1

1

Venueコレクションにアクセスできないのは、サブスクライブしていないためです。return ステートメントが関数を終了するため、関数内の後の 2 つのステートメントはデッド コードreturn this.subscribe('events');です。waitOnその結果、サブスクリプションの配列を返す必要があります。

UserController = AppController.extend({
  waitOn: function() {
    return [Meteor.subscribe('events'), Meteor.subscribe('users'), Meteor.subscribe('venues')];
  },
  data: {
    venues: Venues.find({}),
    events: Events.find({}),
    users: Meteor.users.find()
  }
});

注意:ヘルパー関数に 2 つのセミコロンがありません。これを修正することを強くお勧めします。展開時の縮小プロセスが原因で、Meteor アプリケーションの望ましくない操作が発生する可能性があるためです。

于 2015-12-05T19:58:12.507 に答える