2012-07-25 2 views
0

ArrayController로 엠버 애플 리케이션을 초기화하려고하면 엠버 데이터가 프로젝트에 추가 될 때만 문제가 발생합니다. 내가 오류 없어ArrayController를 만들 때 Emberjs 앱을 초기화하지 못했습니다.

Uncaught TypeError: Cannot call method 'get' of undefined (ember-data-latest.js:3693) 

엠버 데이터가 없으면 다음은 http://jsfiddle.net/ySmZr/2/

App = Em.Application.create(); 
App.customerController = Em.ArrayController.create({}); 
App.initialize();​ 

반환 다음과 같은 오류에 빠른 예입니다. 나는 도처에 봤는데 나는 왜 엠버가 이런 식으로 행동 하는지를 알 수 없다 ... 어떤 이상입니까? 감사 !

답변

3

initialize()를 호출 할 때 라우터 항목을 설정해야합니다. 문서에서 this

참조 :

당신은 응용 프로그램의 Router 속성으로 Ember.Router의 서브 클래스를 제공 할 수 있습니다. 이 라우터 클래스의 인스턴스는 이 인스턴스화되고 응용 프로그램의 initialize 메서드가 호출 될 때 경로 검색이 활성화됩니다. 라우터 인스턴스 가

2 개 솔루션이 있습니다 응용 프로그램의 router 속성으로 사용할 수 있습니다 : 그 기능

  • 통화 초기화가(), 라우터와 응용 프로그램을 제공하고 사용
  • 돈 '
+0

ArrayController는 어떻습니까? 하나 추가하면 같은 오류가 발생합니다. http://jsfiddle.net/ySmZr/6/ – ThomasDurin

+0

아마도 버그 일 수 있습니다. 컨트롤러를 확장하면 재현되지 않습니다. http://jsfiddle.net/ySmZr/7/을 참조하십시오. 마지막 토론 Ember.JS 개발자들은 우리가 스스로 컨트롤러를 만들 필요가 없다고 말합니다. 그것에 대해 https://gist.github.com/2728699에서 읽어보십시오. – zaplitny

2

Ember Data를 사용하는 경우 컨트롤러 클래스 (대문자)와 th (대문자)를 만들어야합니다. 메소드를 확장합니다. 그래서 그것은 다음과 같아야합니다 :

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

그런 다음 컨트롤러를 사용할 때마다 인스턴스를 호출하기 만하면됩니다.

관련 문제