2013-04-17 2 views
-1

아래는 제 json 구조이며 콜렉션 가져 오기 후에 루프를 통과 할 수 없습니다.콜렉션 - 백본을 통해 루프 할 수 없습니다.

JSON :

{ "science":[{},{},{},...{}], "maths":[{},{},{},...{}], "english":[{},{},{},...{}], } 

this.collection.each(function(m) { 
    //returns me only only single child object named "r" 
    //screenshot attached below 
}); 

어떻게 3은 diff 배열 객체 내가 루프 3 회 즉?

enter image description here

+0

데이터 구조에 대해 자세히 설명해 주시겠습니까? 아니면이 특정 모델의 3 배열 속성을 반복하고 싶습니까? – Loamhoof

+0

저는 루프를 통해 3 가지 속성, 과학, 수학 및 항공을 얻고 싶습니다. 지금은 한 번만 반복하고 "r"이라는 단일 객체를 보여줍니다. – user1184100

+0

당신이 말하는 세 가지 속성은 Model의 속성입니다. 당신은 컬렉션을 반복하려고합니다. 그러므로 모델을 얻습니다. (그 객체 "r"은 모델입니다. 왜이 이름을 당신에게 줄 수 있었는지에 대한 자세한 설명을 위해 링크입니다.하지만 그 점은 중요하지 않습니다.) 당신은 어떤 구조를 기대합니까 (분명히이 것은 아닙니다)? – Loamhoof

답변

1

당신은 당신의 데이터가 포함 된 JSON을 변경해야합니다. 컬렉션에서 JSON을 구문 분석합니다.

[{...}, {...}, {...}] 

여기에는 3 개의 개체가있는 배열이 있습니다. 그것은 3 개의 모델로 분석 될 것입니다.

[ 
    {course: 'science', data: [...]}, 
    {course: 'maths', data: [...]}, 
    {course: 'aviation', data: [...]} 
] 

이 3 개 모델 당신에게 컬렉션을 줄 것이다, 그 모델의 각 2 개 특성을 갖습니다 : 하나 개의 속성 coursedata 그래서 당신은 그런 일을 할 수 있습니다. 이제 루프를 반복하십시오.

this.collection.each(function(m) { 
    console.log(m.get('course')); // will be science, maths or aviation 
    console.log(m.get('data')); // will be the corresponding array 
}); 
관련 문제