0

当我尝试使用 ArrayController 初始化我的 ember 应用程序时,我遇到了一个问题,但只有在将 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)

没有 ember-data 我没有错误。我到处看了看,我就是找不到为什么 ember 会这样……有什么想法吗?谢谢 !

4

2 回答 2

3

当调用 initialize() 你必须设置路由器的东西。看到这个

从文档:

您可以提供 Ember.Router 的子类作为Router应用程序的属性。initialize当调用应用程序的方法时,将实例化此 Router 类的实例并启用路由检测 。Router 实例将作为router应用程序的属性提供

有2个解决方案:

  • 调用initialize(),为Application提供router并使用它的能力
  • 不要使用初始化()
于 2012-07-25T11:38:14.660 回答
2

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

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

然后,您只需在需要使用控制器时调用它的实例。

于 2012-07-25T15:59:06.507 回答