I wonder how to get the param (the ID) of my edit route in Ember.js.
That's how I defined my route:
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');
});
});
Now I want to fetch the model by its ID on this edit route /accounting/request/3/edit
:
App.AccountingRequestEditRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('request', params.request_id);
}
});
But this doesn't work because params
is empty.
This works as expected, but the edit route doesn't:
App.AccountingRequestRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('request', params.request_id);
}
});
When you are in a child route you can use
this.modelFor
, example:Because in order to go to
request.edit
, you have to provide an id or object to its parent resource,request
either directly going to the route passing the url to the browser or indirectly by transition from other routes that happen to link to edit.