1
我正在構建具有頁面版本的應用程序。我希望用戶能夠訪問該頁面,而不必指定他們希望開始使用的版本。如果沒有在URL中指定版本,我想查找該頁面的最新版本並重定向到該頁面。在路由器級別上的流星收集查找
我遇到的問題是,我無法在路由器級別上進行任何集合查找來找出我要查找的版本,因爲集合根本就不存在。
這裏是我到目前爲止的代碼:
Router.route('page', {
path: '/page/:slug/:version?',
onBeforeAction: function() {
var versionId = this.params.version;
if (!versionId) {
console.log('no version! oh noes!');
var p = Pages.find({slug: this.params.slug});
var newestVersion = Versions.findOne({page: p._id}, {sort: {createdAt: -1}});
versionId = newestVersion._id;
Router.redirect('page', this.params.slug, versionId);
}
this.next();
},
waitOn: function() {
return Meteor.subscribe('page', this.params.slug, this.params.state);
},
data: function() {
return {
page: Pages.findOne({slug: this.params.slug}),
version: Versions.findOne(this.params.version)
}
}
});
任何幫助或洞察力非常感謝!
'if(!version)'是一個錯字還是您的實際代碼? – 2014-12-08 00:13:03
@Kyll Typo。謝謝。我重寫了一些代碼,以便在我的問題中更有意義。我在我的問題中糾正了它。 – 2014-12-08 00:26:45
陳述在答案中,而不是評論^^ – 2014-12-15 08:12:11