我是新手,我正在构建一个非常简单的应用程序。我可以通过点击链接到标签生成的链接,从我的育种者索引页面(/育种者)导航到我的育种者展示页面(/ breeders /:breeder_id)。但是,如果我手动导航到breeders / 1或任何其他breeders.show路线,我会收到以下错误:
Error while loading route: ReferenceError: params is not defined
at Catapp.BreedersShowRoute.Ember.Route.extend.model
我无法弄清楚我做了什么导致了这一点。
这就是我认为的相关代码:
//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']
});
答案 0 :(得分:14)
您需要将参数实际添加到模型钩子
Catapp.BreedersShowRoute = Ember.Route.extend({
model: function(params){
return this.store.find('breeder', params.breeder_id);
}
});
你可以随意调用它
Catapp.BreedersShowRoute = Ember.Route.extend({
model: function(foo){
return this.store.find('breeder', foo.breeder_id);
}
});