更新emberjs后发生路由错误

时间:2013-09-04 07:53:24

标签: ember.js ember-data

我尝试将我的应用程序emberjs版本从1.0.0 rc8更新为1.0.0,但我收到路由错误。在我的应用程序路由我有这些代码:

OlapApp.ApplicationRoute = Ember.Route.extend({
    setupController: function (controller, model) {
        this.controllerFor('column').set('model', OlapApp.AxisModel.find());
       this.controllerFor('row').set('model', OlapApp.AxisModel.find());
   },
   renderTemplate: function (controller, context) {
      this._super(controller, context);
      this.render('application');
      this.render('column', {
        into: 'application',
        outlet: 'column',
        controller: 'column'
    });
    this.render('row', {
        into: 'application',
        outlet: 'row',
        controller: 'row'
    });
},
  dimenssionTree: function () {
    return OlapApp.MeModel.find();
}
});

并收到此错误:

DEPRECATION: Action handlers contained in an `events` object are deprecated in favor of          putting them in an `actions` object (error on <OlapApp.ApplicationRoute:ember314>)
    at Object.triggerEvent (file:///F:/OLAP/app/lib/ember.js:30519:13)
    at trigger (file:///F:/OLAP/app/lib/ember.js:29641:16)
    at handlerEnteredOrUpdated (file:///F:/OLAP/app/lib/ember.js:29537:11)
    at file:///F:/OLAP/app/lib/ember.js:29512:9
    at eachHandler (file:///F:/OLAP/app/lib/ember.js:29559:9)
    at setupContexts (file:///F:/OLAP/app/lib/ember.js:29511:7)
    at finalizeTransition (file:///F:/OLAP/app/lib/ember.js:29835:7)
    at transitionSuccess (file:///F:/OLAP/app/lib/ember.js:29732:13)
    at invokeCallback (file:///F:/OLAP/app/lib/ember.js:8055:19) ember.js:394
 Error while loading route: TypeError {} ember.js:394

如果评论这些行:

     this.controllerFor('column').set('model',OlapApp.AxisModel.find());
    this.controllerFor('row').set('model',OlapApp.AxisModel.find());

我可以看到我的应用程序,但应用程序剂量工作,我认为这些牵引线的错误。我还将ember-data更新为builds.emberjs.com的最新版本

3 个答案:

答案 0 :(得分:5)

发布的错误来自dimenssionTree,该错误应位于actions对象中,如错误中所述:

actions: {
    dimenssionTree: function () {
        return OlapApp.MeModel.find();
    }
}

与您一样,OlapApp.AxisModel.find()应该写成this.store.find('AxisModel')。至于FIxtures可能很适合看你的代码。

答案 1 :(得分:1)

该行:

this.controllerFor('column').set('model', this.get('store').find('AxisModel'));

应该阅读:

this.controllerFor('column').set('model', this.get('store').find('axisModel'));

主要区别在于将AxisModel更改为axisModel

您可以阅读here有关过渡的更多信息。

希望它有所帮助。

答案 2 :(得分:-2)

我改变了

this.controllerFor('column').set('model',OlapApp.AxisModel.find());

this.controllerFor('column').set('model', this.get('store').find('AxisModel'));

并且我知道我可以看到我的应用程序,但我知道我发现FIXTURES我得到一个错误,说找不到AxisModel的任何修补程序