我想知道如何在Ember.js中获取编辑路线的参数(ID)。
这就是我定义路线的方式:
this.resource('accounting', function() {
this.resource('accounting.requests', { path: '/requests' }, function() {
this.route('new');
this.route('archived');
});
this.resource('accounting.request', { path: '/request/:request_id' }, function() {
this.route('edit');
});
});
现在我想通过此编辑路线/accounting/request/3/edit
上的ID获取模型:
App.AccountingRequestEditRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('request', params.request_id);
}
});
但这不起作用,因为params
为空。
这可以按预期工作,但编辑路线不会:
App.AccountingRequestRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('request', params.request_id);
}
});
答案 0 :(得分:1)
当您在儿童路线时,您可以使用this.modelFor
,例如:
App.AccountingRequestEditRoute = Ember.Route.extend({
model: function(params) {
return this.modelFor('request');
}
});
因为要转到request.edit
,您必须为其父资源request
提供一个id或对象,要么直接转到将URL传递给浏览器的路由,要么间接转移到偶然发生链接编辑的其他路线。