Javascript 余烬“;“未定义参数”;路由中

Javascript 余烬“;“未定义参数”;路由中,javascript,function,ember.js,ember-data,Javascript,Function,Ember.js,Ember Data,我是ember的新手,正在开发一个非常简单的应用程序。通过单击链接到标签生成的链接,我可以从我的繁殖者索引页面(/breeders)导航到我的繁殖者显示页面(/breeders/:breeder_id)。但是,如果我手动导航到breeders/1或任何其他breeders.show routes,则会出现以下错误: Error while loading route: ReferenceError: params is not defined at Catapp.BreedersShowRout

我是ember的新手,正在开发一个非常简单的应用程序。通过单击链接到标签生成的链接,我可以从我的繁殖者索引页面(/breeders)导航到我的繁殖者显示页面(/breeders/:breeder_id)。但是,如果我手动导航到breeders/1或任何其他breeders.show routes,则会出现以下错误:

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);
        }
    });


您需要实际将参数添加到模型挂钩中

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);
    }
});

对于那些来到这里并意识到这对他们不起作用的人来说,这很可能是因为你不在该模型的
索引
路线中:唯一的
参数
起作用的地方。我用了。我想在答案中添加更多信息,但我不确定我是否理解你指的是什么。参数是根据
:foo
在路由器中的位置填充的。如果您在URL上
/:foo
参数包含数据。但是只要您嵌套在任何地方,例如
/:foo/edit
参数就不包含任何内容。我需要从嵌套路由访问
:foo
ID。
Catapp.BreedersShowRoute = Ember.Route.extend({
    model: function(foo){
        return this.store.find('breeder', foo.breeder_id);
    }
});