我是炭黑的新手,正在构建一个非常简单的应用程序。通过单击链接到标记生成的链接,我可以从我的育种者索引页面(/breeders)导航到我的育种者显示页面(/breeders/:breeder_id)。但是,如果我手动导航到“brines/1”或任何其他“benders.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']
});

最佳答案

您实际上需要将参数添加到模型 Hook

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

关于javascript - 路由中的Ember “Params is not defined”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21813839/

10-10 15:23