【发布时间】:2014-08-04 07:47:17
【问题描述】:
鉴于以下路由器实现:
Router.map(function() {
this.resource('foo', function() { // URL /foo
this.resource('bars', function() { //URL /foo/bars
this.route('bar', { path: '/:bar_id', }); //URL /foo/bars/123
});
});
this.route('bars'); //URL /bars
...我希望能够通过每行 cmets 中指示的 URL 访问它们。
出现问题是因为bars出现了两次;
当这种情况发生时,当 URL /foo/bars 被加载时,
/bars 的模板和控制器在 /foo 的出口中呈现。
有没有办法解决这个问题,让我可以保持 URL 原样?
(即bars 出现在/foo/bars 和/bars 中)
更新:
这是基于@blessenm's suggestion 实现的解决方案:
Router.map(function() {
this.resource('foo', function() { // URL /foo
this.resource('foo-bars', { path: 'bars' }, function() { //URL /foo/bars
this.route('bar', { path: '/:bar_id', }); //URL /foo/bars/123
});
});
this.route('bars'); //URL /bars
为此,需要相应地修改保存各种 Ember 单元的文件路径:
app/{controllers,routes/templates}/foo-bars.{js,hbs}app/{controllers,routes/templates}/foo-bars/bar.{js,hbs}
【问题讨论】:
标签: javascript ember.js url-routing