我认为最好用一个例子来解释: http://jsfiddle.net/NQKvy/666/
当您点击foo
时,一切按预期进行,点击bar
,然后返回foo
。我在控制台中得到了一个connectOutlet异常。我想要实现的是让孩子路线(酒吧)超越父母被吸引的地方。
我知道很多你会说,“好吧,为什么不把它作为一个单独的路线,只修改路线的路径属性,”在这种情况下这不是一个选项,因为我依赖于父母模型和控制器在那里。
App = Ember.Application.create({});
App.Router.map(function() {
this.resource('foo', function() {
this.route('bar');
});
});
App.IndexRoute = Ember.Route.extend({
redirect: function() { this.transitionTo('foo');}
});
App.FooRoute = Ember.Route.extend({
});
App.FooBarRoute = Ember.Route.extend({
templateName: 'foo/bar',
renderTemplate: function() {
/***** THE OFFENDING CODE ******/
this.render(this.templateName, {
into: 'application',
outlet: 'main'
});
}
});
答案 0 :(得分:2)
我认为问题是foo
路由是foo/bar
路由的一部分(foo/bar
默认会呈现为foo
,因为它们是嵌套的)。您可以使用foo/index
路由,如果您指定子路由,则会自动存在,或者替代设置另一个子路由。