创建ArrayController时,Emberjs应用程序初始化失败

时间:2012-07-25 10:27:28

标签: ember.js

当我尝试使用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)

没有余烬数据我没有错误。我到处寻找,我只是无法找到为什么余烬这样做......任何想法?谢谢!

2 个答案:

答案 0 :(得分:3)

调用initialize()时,必须设置Router stuff。见this

来自文档:

  

您可以提供Ember.Router的子类作为Router属性   你的申请。这个Router类的一个实例是   实例化和路由检测将在启用时启用   调用应用程序的initialize方法。路由器实例   将作为应用程序的router属性提供

有两种解决方案:

  • 调用initialize(),为路由器提供应用程序并使用它 功能
  • 不要使用initialize()

答案 1 :(得分:2)

如果您使用的是Ember Data,则必须创建一个控制器类(大写),然后扩展该方法。所以看起来应该是这样的:

App.CustomerController = Em.ArrayController.extend({});

然后,只需在需要时调用控制器的实例即可。