我正在尝试实现非常常见的列表/详细信息模式,例如peepcode示例中的表格或最近的tom dale截屏视频中的博客帖子。仅在我的情况下,应选择第一个项目,并在您输入公共/项目路线时显示详细信息。因此,当您转到/ items时,它应自动将URL更改为/ items / 1并显示列表以及详细信息。
这是我试过的:
App.ItemsRoute = Ember.Route.extend({
model: function () {
return App.Item.find();
},
redirect: function () {
if(Ember.isEmpty(this.modelFor('item'))) {
firstItem = this.model().get('firstObject');
this.replaceWith('item', firstItem);
}
}
});
完整示例: http://jsfiddle.net/ralph/zeKH9/5/
问题是,当您将重定向添加到项目路径时,项目列表不再显示,只显示项目详细信息(尝试删除ItemsRoute中的重定向部分以查看我的意思)。
那么,实现这一目标的最佳方式是什么?
答案 0 :(得分:3)
重定向时,需要从一条路线重定向到另一条路线。
item
嵌套在items
内。所以我猜Ember.js感到困惑,因为过渡到item
并不意味着离开items
。
您应该从items
重定向到item
,而不是从items.index
重定向到item
。
item
包含在items
中,表示items
- > item
没有多大意义。
item
未包含在items.index
中,这意味着items.index
- > item
是一条不同的路线,所以应该有效。