这是我在ember中创建的嵌套路由。
App.Router.map(function(){
this.resource('makes', function(){
this.resource('model', {path: ':division_id'}, function(){
this.resource('zip', {path: ':model_id'});
});
});
this.resource('spec', {path: '/makes/:division_id/:model_id/:zipcode'});
});
在我记录参数时的ziproute中,这是我得到的输出。
Object {model_id: "ILX"}
但是拉链路线的网址就像是/ makes / Acura / ILX。所以我应该得到division_id和model_id。
我无法在params中获得division_id。
示例应用程序在:http://jsbin.com/jujene/36/edit
完成答案 0 :(得分:1)
不确定这是否正是您的目标。在您的路线中,您可以使用Route.modelFor
获取父模型App.ModelRoute = Ember.Route.extend({
model: function(params){
console.log('model params', params);
return { id: params.division_id};
},
});
由于模型路径可以访问参数,因此您可以在模型上设置它。这样,模型路线就建立了一个模型。
然后,在你的拉链路线上:
App.ZipRoute = Ember.Route.extend({
model: function(params){
var m = this.modelFor('model');
console.log('division id', m.id);
console.log('zip params', params);
params.division_id = m.id;
return params;
}
});
请参阅更新后的示例JSbin,这是您的略微清理副本。