我尝试将我的应用程序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的最新版本
答案 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的任何修补程序