【发布时间】:2015-09-10 10:27:09
【问题描述】:
我有一个适用于posts 和tags 的应用程序。目前他们没有任何关系,只是处于独立状态。
我想将默认模板指定为postsList,而我在router.js 中有:
Router.route('/', {name: 'postsList'});
但这搞砸了tags 的路由,所以我将routes.js 更改为:
Router.configure({
layoutTemplate: 'layout',
loadingTemplate: 'loading',
waitOn: function () {
return Meteor.subscribe('posts');
return Meteor.subscribe('tags');
}
});
Router.route('/posts', {name: 'postsList'});
Router.route('/posts/:_id', {
name: 'postPage',
waitOn: function () {
return Meteor.subscribe('comments', this.params._id);
},
data: function () {
return Posts.findOne(this.params._id);
}
});
Router.route('/posts/:_id/edit', {
name: 'postEdit',
data: function () {
return Posts.findOne(this.params._id);
}
});
Router.route('/submit', {name: 'postSubmit'});
// Tags Start
Router.route('/tags', {name: 'tagsList'});
Router.route('/tags/submit', {name: 'tagSubmit'});
Router.route('/tags/:_id', {
name: 'tagPage',
data: function () {
return Tags.findOne(this.params._id);
}
});
Router.route('/tags/:_id/edit', {
name: 'tagEdit',
data: function () {
return Tags.findOne(this.params._id);
}
});
// Tags End
// Authentication
var requireLogin = function () {
if (!Meteor.user()) {
if (Meteor.loggingIn()) {
this.render(this.loadingTemplate);
} else {
this.render('accessDenied');
}
} else {
this.next();
}
};
Router.onBeforeAction(requireLogin, {only: ['postSubmit', 'tagSubmit']});
结果,当我访问应用程序的根路由时,它给了我错误:
糟糕,客户端或服务器上似乎没有 url 的路由:“http://askar-blog.meteor.com/”。
有什么办法吗?
https://github.com/tenzan/blog
如果你熟悉 Rails,你可以在routes.rb:
root 'posts#index'
resources :posts
【问题讨论】:
标签: meteor iron-router