I have the following structure in router.js

this.route('provider', { path: 'provider/:provider_name' }, function () { this.route('forms'); }); 

In provider / route.js

 import Ember from 'ember'; const { inject: { service } } = Ember; export default Ember.Route.extend({ provider: service(), model(params) { return this.get('provider').get(params.provider_name); }, serialize: function(model) { return { provider_name: model.get('name') }; } }); 

In provider / forms / route.js

 import Ember from 'ember'; const { inject: { service } } = Ember; export default Ember.Route.extend({ forms: service('provider.forms'), model(query) { return this.get('forms').getPage(query); } }); 

How can I get provider_name in the forms model?

Do something in provider / forms / route.js type

 model(query) { return this.get('forms').getPage(query.provider_name); } 

Or in some other way get provider_name. Thanks for the help.

    1 answer 1

    You need to use the ModelFor method of the Route object to get the parent model. Those. In the child route ( forms ) route you do this:

     model(query) { return this.get('forms').getPage(this.modelFor('provider').name); } 

    This will work provided that the model returned from the parent route contains the name property. Replace this name with something that is more convenient for you.