Ember.js 余烬路由器根URL选项(未捕获错误:没有与URL匹配的路由';/admin';)
我正试图开始构建一个将在/admin/前缀上运行的管理系统 这是我的文件Ember.js 余烬路由器根URL选项(未捕获错误:没有与URL匹配的路由';/admin';),ember.js,ember-router,ember-rails,Ember.js,Ember Router,Ember Rails,我正试图开始构建一个将在/admin/前缀上运行的管理系统 这是我的文件 App.Router.reopen location: 'history' rootURL: '/admin' App.IndexRoute = Ember.Route.extend setupController: (controller, model) -> @controllerFor('application').set('currentRoute', 'home') 当我转到/adm
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开始,我的代码基于
在谈到emberjs中的路由时,这取决于您使用的是哪个版本。在1.0pre2和1.0pre3之间有一个很大的API变化。www.emberjs.com上的文档已经是新API的最新版本,并且易于理解 下面是一个很小的例子
- 自动重定向到“/members”处所有成员概览的IndexRoute
- 基于ID的动态路由
- 如果参数不是“id”而是其他参数,则序列化/反序列化。在下面的示例中,它是“refId”(表示引用ID)
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 };
}
});
在旧路由器中,解析路由时将忽略“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');
}
});
你能再加一点背景吗?例如路由器映射(App.router.map(…))。更好的是,如果您可以提供示例的JSFIDLE/jsbin,这将非常有用。。。路由器部分对我来说是最复杂的。代码现在看起来像这样:。现在的问题是ember没有显示路径的模板(javascripts/admin/templates/*)。。。如果我把我的模板放在(javascripts/templates/*)中就可以了。。。
App.Router.map(function() {
this.resource("admin", { path: "/admin" }, function() {
this.route("other");
});
});
App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('admin');
}
});