1

我正在尝试实现非常常见的列表/详细信息模式,例如 peepcode 示例中的表格或最近的 tom dale 截屏视频中的博客文章。仅在我的情况下,应选择第一项,并在输入通用 /items 路由时显示详细信息。因此,当您转到 /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/

问题是,当您将重定向添加到 items 路由时,不再显示项目列表,只显示项目详细信息(尝试删除 ItemsRoute 中的重定向部分以了解我的意思)。

那么,实现这一目标的最佳方法是什么?

4

1 回答 1

3

重定向时,您需要从一条路由重定向到另一条路由。

item嵌套在里面items。所以我猜 Ember.js 会变得困惑,因为过渡到item并不意味着离开items.

而不是从itemsto重定向item,您应该从items.indexto重定向item

item包含在items 其中意味着items->item没有多大意义。

item不包括在items.index这意味着items.index->item是一条不同的路线,因此应该可以工作。

更新的小提琴

于 2013-04-09T11:14:48.890 回答