2012-01-16 5 views
0

나는 ember-data가 sinatra json-app와 대화하는 코드를 구현했다. findAll 메소드는 예상대로 작동하고 레코드로드를 수행합니다. 또한 DS.Store.create에서 updateRecord 메서드를 구현했지만 실제로 업데이트하고 커밋하는 방법을 알지 못합니다. (간결함을 위해, 나는 JQuery와 기능을 포함하지 않았다) 여기에 코드를 참조하십시오Ember 데이터 - 레코드 업데이트 방법

http://pastie.org/3197008 내가 시도 다음

a = Todos.records.objectAt(0).set("text", "should be so") 
a.store.commit() 

그러나 나는 다음과 같은 오류 얻을 : TypeError: Object (subclass of DS.State) has no method 'enter'

레코드를 어떻게 업데이트해야합니까? 또는 업데이트를 구현하는 것을 잊었습니까?

미리 감사드립니다.

답변

4

같은 문제가있었습니다. 나는 이것이 ember-data의 버그라고 생각한다. 문제는 코드가 특정 하위 상태를 제대로 초기화하지 못했고 하위 상태가 상태 인스턴스가 아니라 상태 클래스 였기 때문입니다.

새로운 상태 인스턴스를 생성 할 때마다 (적절하게 만들어진 substate를 사용하여) 호출 할 때마다 함수를 정의하여 문제를 해결했습니다. 내 변경 사항은 here입니다.

ember-data 사람들이 내 수정을 요청 했으므로이 문제는 곧 사라질 것입니다. 토론을 위해 pull request을 볼 수 있습니다.

+0

고마워요! 이 버그가 나를 미치게합니다 :-) – Mimay

+1

수정 작업을 확인할 수 있습니다. +1 –

+0

고마워, Rafael. –

2

오늘 아침에도 같은 문제가있었습니다. emberjs git 버전을 사용하십시오.

+0

예, 최신 데이터를 원한다면 ember-data를 가져오고 빌드해야합니다 ... 그들은 전체 다운로드/빌드를 게시하지 않았습니다. –