0
我想根據文檔中的布爾屬性(mode
)來決定哪些用戶訂閱,但我在設計方法方面存在問題。如果我在waitOn
函數中使用this.data()
和if子句,則將呈現404頁面,因爲我需要首先訂閱。鐵路由器在waitOn函數中選擇不同的訂閱 - 流星
這裏是我的代碼:
this.route('gamePage', {
path: '/game/:slug/viewGame/:produceDate?/:releaseDate?',
onBeforeAction: [memberFilter],
waitOn: function() {
var game = this.data();
if (game.mode) {
if (this.params.produceDate && this.params.releaseDate) {
return [Meteor.subscribe('singleGame', this.params.slug),
Meteor.subscribe('authorsMode', this.params.slug, this.params.produceDate, this.params.releaseDate)];
} else {
return [Meteor.subscribe('singleGame', this.params.slug), Meteor.subscribe('console', this.params.slug)];
}
} else {
return [Meteor.subscribe('singleGame', this.params.slug),
Meteor.subscribe('authors', this.params.slug)];
}
},
data: function() {
return Games.findOne({slug: this.params.slug});
}
任何幫助將不勝感激。
謝謝你的幫助!如果我正確理解你的方法,我不是100%的確定。所以,你建議有不同的路線,比如'this.route('gamePageOption1')','this.route('gamePageOption2')'具有相同的URL,但具有不同的訂閱? – user3475602 2014-09-20 17:38:07
對,就是這樣。一個url可以是'/ game /:slug/viewGame /:\ produceDate?/:releaseDate?/ withMode'另一個'/ game /:slug/viewGame /:\ produceDate?/:releaseDate?/ noMode',每個都有不同的訂閱。 – 2014-09-20 23:41:48
我只想補充一點,我發現了一個更好的方法(用於我的目的)。我用'this.subscribe('collectionName',this.params.slug).wait();'替換了語句,而不是重定向到不同的路由。爲我工作! – user3475602 2014-09-22 16:30:56