2014-06-18 2 views
1

WebApi2에 의해 일련 화 된 사전이있어서 키가 개체 이름이고 값이 값이됩니다.foreach를 사용하여 사전 렌더링

어떻게하면 녹아웃이 foreach 바인딩으로 렌더링 될 수 있습니까?

enter image description here

나는 값의 키와 $data[1]에 대한 $data[0]을 사용하려고하지만, 작동하지 않았다.

<table id="context-data" class="table-striped properties"> 
    <thead> 
    </thead> 
    <tbody data-bind="foreach: Properties"> 
     <tr> 
      <th data-bind="text: $data[0]" style="text-align: right"></th> 
      <td data-bind="text: $data[1]"></td> 
     </tr> 
    </tbody> 
</table> 

답변

2

foreach 바인딩 요구 배열을 당신은 주어진 객체의 자신의 열거 속성의 배열을 얻을 수있는 Object.keys method를 사용할 수 있습니다.

<tbody data-bind="foreach: Object.keys(Properties)"> 
    <tr> 
     <th data-bind="text: $data" style="text-align: right"></th> 
     <td data-bind="text: $parent.Properties[$data]"></td> 
    </tr> 
</tbody> 

참고 :

는 그런 다음 그 값 (Properties[$data])을 얻을 수 있도록 Properties 개체의 속성 이름과 배열 인덱서 구문을 표시 할 $data를 사용하면 내부 Properties에 액세스 할 수 $parent를 사용할 필요가 foreach.

데모 JSFiddle.

+0

감사합니다. 이름/값 필드가있는 객체로 바꾸거나 현재 JSON 솔루션의 좋은 방법이라고 생각하십니까? – jgauffin

+0

다릅니다. 속성을 배열의 여러 위치에서 응용 프로그램의 배열로 사용하려는 경우 키/값 쌍의 실제 배열로 바꾸는 것이 좋습니다. 그렇지 않으면 더 많은'Properties'를 객체/사전으로 사용한다면 나는 그것을 변경하지 않을 것입니다. – nemesv

관련 문제