指定根路由的默认模板
Specifying the default template for root route
我有 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']});
因此,当我访问应用程序的根路由时,出现错误:
Oops, looks like there's no route on the client or the server for url: "http://askar-blog.meteor.com/."
有什么解决办法吗?
https://github.com/tenzan/blog
如果您熟悉 Rails,您可以在 routes.rb
:
root 'posts#index'
resources :posts
您可以将其重定向到适当的路线。
Router.route('/', function () {
this.redirect('/posts');
});
我有 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']});
因此,当我访问应用程序的根路由时,出现错误:
Oops, looks like there's no route on the client or the server for url: "http://askar-blog.meteor.com/."
有什么解决办法吗?
https://github.com/tenzan/blog
如果您熟悉 Rails,您可以在 routes.rb
:
root 'posts#index'
resources :posts
您可以将其重定向到适当的路线。
Router.route('/', function () {
this.redirect('/posts');
});