我正在尝试构建一个将在/ admin /前缀上运行的管理系统。
这是我的路线文件
App.Router.reopen
location: 'history'
rootURL: '/admin'
App.IndexRoute = Ember.Route.extend
setupController: (controller, model) ->
@controllerFor('application').set('currentRoute', 'home')
当我去/ admin时,我收到以下错误:
Uncaught Error: No route matched the URL '/admin'
我刚开始使用emberjs,而我的代码基于this serie
Ember version: v1.0.0-pre.4
Ember-data current api revision:: 11
答案 0 :(得分:3)
在old-router中,解析路由时会忽略'rootURL'属性。在最新版本的ember中,rootURL似乎只在构造链接时使用。不确定这是一个错误还是疏忽。作为解决方法,请尝试以下方法:
App.Router.map(function() {
this.resource("admin", { path: "/admin" }, function() {
this.route("other");
});
});
App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('admin');
}
});
答案 1 :(得分:1)
在讨论emberjs中的路由时,它取决于您使用的是哪个版本。 1.0pre2和1.0pre3之间有一个很大的API变化。 www.emberjs.com上的文档已经是新API的最新版本,并且易于理解。
下面是一个显示
的小例子嗯,考试并没有真正展示官方文件。但附加信息总是很好。
所以,希望这会有所帮助。欢呼声。
App.Router.map(function() {
this.resource("members", { path: '/members' });
this.resource("member", { path: "/members/:refId" }, function() {
this.route("delete");
});
});
App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('members');
}
});
App.MembersRoute = Ember.Route.extend({
model: function() {
return App.Member.findAll();
}
});
App.MemberRoute = Ember.Route.extend({
model: function(params) {
return App.Member.find(params.refId);
},
// overwrite default serializer (defaults to 'id', member has 'refId')
serialize: function(model) {
return { refId: model.refId };
}
});