javascript – 路由中的Ember“Params未定义”

前端之家收集整理的这篇文章主要介绍了javascript – 路由中的Ember“Params未定义”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是新手,我正在构建一个非常简单的应用程序.我可以通过点击链接标签生成链接,从我的育种者索引页面(/育种者)导航到我的育种者展示页面(/ 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']
});

解决方法

您需要将参数实际添加到模型钩子中
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相关文章