2012-12-24 2 views
3

Ember.Array/Ember.Enumerable을 지원하는 Ember에 키 값 객체가 있습니까?Ember.js에서 열거 가능한 객체 (키 값 맵)

핸드백 템플릿에 {{#each}}으로 반복하고 싶습니다.

내 유스 케이스는 서버에서 임의의 JSON (사용자 정의 필드)을 표시하고 있습니다 (아래 예 참조). 재귀 적으로 중첩 배열 (each 헬퍼 사용)에서 뷰를 만들 수 있지만 객체를 반복 할 수는 없습니다. 내 계획은 JSON 객체를 래핑하고 객체를 열거 할 수있게하는 객체를 찾거나 작성하는 것입니다. 이 일을하는 가장 좋은 방법은 무엇입니까?

내 생각 지금까지는, Enumerable/Array/ArrayProxy/ObjectProxy/혼합 연장 Ember.Array로서 기본 키 값 저장소를 저장하고, 객체에 대한 키를 저장하는 필드를 추가 keys의 조합이다. 그런 다음 setUnknownPropertyunknownProperty을 사용하여 기본 값을 설정/가져오고 keys을 동기화 상태로 유지할 수 있습니다. 이 접근 방식이 효과가 있습니까? 서버

에서 JSON의

형식은 다음 예 (사용자 문서를 자신의 운동 데이터)입니다. 이것은 단지 하나의 예에 불과합니다. 형식이 완전히 유연하므로이 사용자 정의 필드를 모델링하는 Ember 데이터 모델을 만들 수 없습니다. 전반적으로, 데이터는 임의의 복잡한 JSON (해시, 배열의 중첩의 정도, 프리미티브) 지금까지 내가 Ember.js 철학을 얻을로

{ 
    "bench_press":[ 
     { 
     "weight":95, 
     "repetitions":5, 
     "tags":[ 
      "warmup" 
     ] 
     }, 
     { 
     "weight":135, 
     "repetitions":3, 
     "tags":[ 
      "warmup" 
     ] 
     }, 
     { 
     "weight":155, 
     "repetitions":3, 
     "tags":[ 
      "warmup" 
     ] 
     }, 
     { 
     "weight":165, 
     "repetitions":2, 
     "tags":[ 
      "warmup" 
     ] 
     }, 
     { 
     "weight":185, 
     "repetitions":1, 
     "tags":[ 
      "warmup" 
     ] 
     }, 
     { 
     "weight":195, 
     "repetitions":1, 
     "tags":[ 
      "warmup", 
      "overshoot" 
     ] 
     }, 
     { 
     "weight":190, 
     "repetitions":5, 
     "tags":[ 

     ] 
     }, 
     { 
     "weight":190, 
     "repetitions":5, 
     "tags":[ 

     ] 
     }, 
     { 
     "weight":190, 
     "repetitions":5, 
     "tags":[ 

     ] 
     }, 
     { 
     "weight":190, 
     "repetitions":3, 
     "tags":[ 

     ] 
     }, 
     { 
     "weight":190, 
     "repetitions":2, 
     "tags":[ 
      "negatives" 
     ] 
     } 
    ] 
} 
+0

당신의 아들은 얼마나 독단적입니까? 지원하려는 다른 형식과이를 반복하는 방법을 보여주는 샘플 데이터를 게시 할 수 있습니까? 나는 전문가가 아니지만 매우 도움이 될 것이라고 생각합니다. – Aras

+0

@Aras 방금 일부 예제로 질문을 업데이트했습니다. 기본적으로 데이터 형식은 모든 사용자 정의이기 때문에 어떤 것이 될 수 있습니다 ... –

+0

새로운 라우터 API를 살펴보아야합니다 : http://emberjs.com/guides/controllers/representing-multiple-models-with-arraycontroller/ . 각 도우미를 사용하여 객체를 반복 할 수 있습니다. –

답변

0

을 할 수있다, 선언적 핸들 바 템플릿은이하를 사용하여 강조 할만큼 보수적 템플릿의 논리.

위의 경우에는 ContainerView을 사용하여 JSON을 컨텍스트로 제공하는 것이 좋습니다.