当我尝试使用ArrayController初始化我的ember App时,我遇到了一个问题,但只有在将ember-data添加到项目中时才会出现问题。这是http://jsfiddle.net/ySmZr/2/
的快速示例App = Em.Application.create();
App.customerController = Em.ArrayController.create({});
App.initialize();
返回以下错误:
Uncaught TypeError: Cannot call method 'get' of undefined (ember-data-latest.js:3693)
没有余烬数据我没有错误。我到处寻找,我只是无法找到为什么余烬这样做......任何想法?谢谢!
答案 0 :(得分:3)
调用initialize()时,必须设置Router stuff。见this
来自文档:
您可以提供Ember.Router的子类作为
Router
属性 你的申请。这个Router类的一个实例是 实例化和路由检测将在启用时启用 调用应用程序的initialize
方法。路由器实例 将作为应用程序的router
属性提供
有两种解决方案:
答案 1 :(得分:2)
如果您使用的是Ember Data,则必须创建一个控制器类(大写),然后扩展该方法。所以看起来应该是这样的:
App.CustomerController = Em.ArrayController.extend({});
然后,只需在需要时调用控制器的实例即可。