Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 嵌套路由和数组_Ember.js_Ember Data - Fatal编程技术网

Ember.js 嵌套路由和数组

Ember.js 嵌套路由和数组,ember.js,ember-data,Ember.js,Ember Data,在我的应用程序中,我有以下设置: 路由器 当用户导航到类型时,他会得到一个包含所有不同类型的列表。当他点击一个链接时,他会导航到特定的类型:页面。这里我想展示一系列产品。每种类型都有一系列产品。我尝试让产品这样做: this.resource('types'); this.resource('type', {path: 'types/:type_id'}, function(){ this.resource('products', {path: '/products'}); }); 路

在我的应用程序中,我有以下设置:

路由器

当用户导航到类型时,他会得到一个包含所有不同类型的列表。当他点击一个链接时,他会导航到特定的类型:页面。这里我想展示一系列产品。每种类型都有一系列产品。我尝试让产品这样做:

this.resource('types');
this.resource('type', {path: 'types/:type_id'}, function(){
    this.resource('products', {path: '/products'});
});
路由器

但那没用。我也试过使用params,但不起作用

model: function(params){
    return this.store.find('product', {id: params_id});
}
模板

类型模板

  <h3>{{name}}</h3>
  <hr>
  {{outlet}}
但是模板中没有加载任何内容。我不知道这是不是该走的路。我成功地删除了嵌套路径,并将两个模型简单地加载到typeController上的afterModel挂钩中,但这并不能让我访问链接到该产品的其他模型

很令人沮丧的是,一些简单的事情,比如加载一系列属于某个类型的产品,是一件非常麻烦的事情

编辑 我试图做到的是,当你访问主页时,你可以

单击指向url..../types的链接类型,并显示所有类型的列表。没问题。 当你点击一个类型时,它会将你带到类型/类型id,例如类型/1,并向你展示一些关于特定类型的信息。 在同一页上,我想显示与此类型关联的所有产品的列表。这就是我挣扎的地方 模型 类型

产品

name: DS.attr('string'),
prodcuts: DS.belongsTo('type', {async: true})

我首先尝试通过在中建议的相同路线上通过两个模型。这在某种程度上可以很好地工作,但是我想在每个产品上放置一个action和computed属性,因为模型加载在afterModel钩子中,所以它们不会得到更新。我认为最好的方法是输入一个嵌套资源,根据类型id返回所有产品,但我无法以某种方式使其正常工作。

您能提供jsbin吗?现在还不清楚您想在这里实现什么?您的意思是,当您单击类型集合中的链接时。。。那么每种类型都有许多与之相关的产品?你的模型是那样设置的吗?你能展示一下吗?在类型路由中,您要使用…find'type',params.type_id来设置单一类型路由。。如果产品定义正确,应该加载它。Jsbin很难,因为您需要处理夹具数据等,而且它的工作方式与http模拟服务器等不同。
  <h3>{{name}}</h3>
  <hr>
  {{outlet}}
  {{#each}}
       {{name}}
  {{/each}}
name: DS.attr('string'),
products: DS.hasMany('product', {async: true})
name: DS.attr('string'),
prodcuts: DS.belongsTo('type', {async: true})