列表/明细模式:自动选择第一个项目

时间:2013-04-09 09:34:24

标签: ember.js

我正在尝试实现非常常见的列表/详细信息模式,例如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中的重定向部分以查看我的意思)。

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

1 个答案:

答案 0 :(得分:3)

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

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

您应该从items重定向到item,而不是从items.index重定向到item

item包含在items中,表示items - > item没有多大意义。

item未包含在items.index中,这意味着items.index - > item是一条不同的路线,所以应该有效。

Updated fiddle