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})