ember中的动态路由显示父模型而不是自己的模型

时间:2014-07-29 22:07:41

标签: javascript ember.js

我试图创建一条从颜色列表到单一颜色的简单路线。不幸的是,一旦导航到colors/:color,即colors/red,模型就不会覆盖单个模型的属性,仍然会反映颜色列表。

如何正确深入查看单个模型?

路线:

App.ColorsRoute = Ember.Route.extend({
  model: function() {
    return this.store.findAll('color');
  }
});

App.ColorRoute = Ember.Route.extend({
  model: function(params) {
    console.log(params);
    return this.store.findBy("color", params.colors_id);
  }
});

路由器:

App.Router.map(function() {
  this.resource("colors", function(){
    this.resource("color", {path: "/:colors_id"});
  });
});

问题转载于jsbin:http://jsbin.com/sipexu/3/edit

1 个答案:

答案 0 :(得分:2)

有些事情不适合你 - 我在这里有一个工作的jsbin:http://jsbin.com/xejik/1

首先,“颜色”下有未申报的“索引”路线。由于您拥有该模板,因此您应该在地图调用中包含一个空函数:

App.Router.map(function() {
  this.resource("colors", function(){
    this.resource("color", {path: "/:colors_id"}, function() {});
  });
});

此外,我更改了“颜色”模板以显示颜色名称。您的link-to引用了this,而不是item

{{#each item in model}}
    <li>{{#link-to "color" item}}{{item.color}}{{/link-to}}</li>
{{/each}}

您可以在此处详细了解此信息(功能?问题?):http://discuss.emberjs.com/t/index-route-puzzle/5965