1

有人可以告訴我可能缺少的內容,以便從給定頁面訪問集合中的數據嗎?我可以訪問的事件集合,但不會場一個 - 這裏是代碼:meteor.js - 設置控制器訪問集合

//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({}) 
    } 
}); 

的發佈&許可文件是事件和地點相同,控制器被路由到正確的頁面,會場收集從其他控制器的頁面可見。

謝謝您的時間!

回答

1

您無法訪問Venue集合的原因是您沒有訂閱它。 waitOn函數中return this.subscribe('events');之後的兩個語句是死代碼,因爲return語句會終止函數。其結果是,你需要返回訂閱的數組:

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() 
    } 
}); 

請注意:我在您的輔助函數發現兩人失蹤分號。我強烈建議您修復此問題,因爲這可能會導致您的Meteor應用程序出現意外操作,這是由於部署過程的縮減過程。

+1

非常感謝。我沒有意識到這一點,我猜訂閱用戶部分是不必要的,因爲我已經有權訪問當前用戶。乾杯! – Sekoul

+0

不客氣! –