저는 하루 종일이 문제에 대해 머리를 쓰고 있었고, 저는 솔루션에 가깝지만 느낄 수 없었습니다. Ember-j와 Ember-Data 및 Fixtures 어댑터를 사용 중이며 결국 REST 어댑터로 마이그레이션합니다. 기본적인 문제는 다음과 같습니다. many-to-many 관계가있는 사이트 및 감독자가 있습니다. 내가 사이트으로 분류 기존 사이트/수퍼바이저 짝을위한 선택 상자, 즉을 사용자에게 제공 할 :Ember.js 반복 데이터 레코드 배열
- 사이트 1 - 수퍼바이저 1
- 사이트 1 - 관리자 2
- 사이트 2 - 감독자 1 은 (많은 많은 기억)
- 사이트 2 - 내가 상속보기로 전달할 수있는 하나의 배열로이 두 가지 자원을 다툰 할 필요가 감독자 3
(또는 Wi Ember.Select에서 상속). 현재 이러한 관계를 나타내는 병합 배열을 반환하기 때문에 "평면"이라고 부르는 수퍼바이저 컨트롤러의 메서드로이 작업을 시도하고 있습니다. 컨트롤러는 아래와 같습니다. 약속을 완료 한 후 .find(). then()을 사용하여 데이터를 처리합니다. 내가 돌아 오는 데이터가 인데 내 모든 조명기를 포함하는이 있지만 그 중 하나 (특히 forEach)에서 열거 형 메서드를 사용하면 첫 번째 개체 만 반환 한 것처럼 동작합니다. data.get ('content')뿐만 아니라 데이터 객체에 대해서도 반복적으로 시도했다. 나는 Ember에게 아주 익숙하다. 그래서 어쨌든 나는 이것을 잘못 생각할 것이지만, 이것에 관계없이 이것은 나에게 매우 이상하게 보인다. 첫 번째 CONSOLE.LOG에서 로그 출력은()
0: Object
1: Object
2: Object
3: Object
__ember1376005434256: "ember325"
__ember1376005434256_meta: Meta
_super: undefined
length: 4
__proto__: Array[0]
당신은 내가 여기에 누락 무엇을 말해 줄 수 호출 여기
App.SupervisorsController = Ember.ArrayController.extend({
flat: function(){
return App.Supervisor.find().then(function(data){
var c = data.get('content') ;
console.log(c) ; // <-- logs an object containing four records,
// with attribute "length" showing 4
// Great! (see below for log output)
console.log(c[0]) ; // <-- logs first record. Great!
console.log(c[1]) ; // <-- undefined (?!)
console.log(c[2]) ; // <-- undefined (?!)
console.log(c[3]) ; // <-- undefined (?!)
console.log(c.get('length')) ; // <-- 1 (not four?!)
return c ; // <-- eventually this will return the newly constructed array
}) ;
}
}) ;
을 그리고 : 여기 내 코드는? 4 명의 결과 감독자 각각에 액세스하는 방법을 알 수 없습니다.
감사합니다.
[] 연산자를 통해 직접 액세스하는 대신 data.objectAt (인덱스)를 사용해 보셨습니까? –