Ember "Params not defined" when routing

I am new to ember and am creating a very simple application. I can go from the breeders index page (/ breeders) to the page showing my breeders (/ breeders /: breeder_id) by clicking on the link generated by the link-to tag. However, if I manually switch to / 1 breeders or any other .show breeder routes, I get the following error:

Error while loading route: ReferenceError: params is not defined at Catapp.BreedersShowRoute.Ember.Route.extend.model 

I can’t understand what I did, what causes this.

Here is what I consider the appropriate code:

  //router.js Catapp.Router.map(function() { this.resource('breeders', function() { this.route('new'); this.route('show', {path: '/:breeder_id'}); }); }); Catapp.IndexRoute = Ember.Route.extend({ redirect: function(){ this.transitionTo('breeders.index'); } }); Catapp.BreedersIndexRoute = Ember.Route.extend({ model: function(){ return this.store.find('breeder'); } }); Catapp.BreedersShowRoute = Ember.Route.extend({ model: function(){ return this.store.find('breeder', params.breeder_id); } }); 

.

 // breeders_controller.js Catapp.BreedersController = Ember.ArrayController.extend({ sortProperties: ['id'] }); 
+6
source share
1 answer

You will need to actually add the argument to the model hook

 Catapp.BreedersShowRoute = Ember.Route.extend({ model: function(params){ return this.store.find('breeder', params.breeder_id); } }); 

You can call it what you like.

 Catapp.BreedersShowRoute = Ember.Route.extend({ model: function(foo){ return this.store.find('breeder', foo.breeder_id); } }); 
+14
source

All Articles