2012-03-12 2 views
4

나는 내가 부족 뭔가가 있어야하지만, 지금은 이것에 대해 너트가는 가까이있어 그것은 간단 할 거라고 생각 ...녹아웃 JS - 다차원 observableArrays 및 표시 하위 배열 데이터

I '있는 그렇습니다하는 ko.observableArray에서 다차원 배열을 가지고했습니다 :

사이트 -> 회사 -> 내 데이터에 대한 작업

이 결합, data-bind="text: Site().Name" 괜찮아요, 당신이 기대하는 것처럼. 그러나 서브 배열에 data-bind="text: Site().Company().Name" 또는 data-bind="text: Site().Company.Name"까지 액세스 할 수 없습니다.

다른 누구도 동일한 문제가 있었습니까? 아니면 크게 잘못하고있는 것이 있습니까? 객체는 콘솔에서 볼 수 있기 때문에 어레이에 제대로로드됩니다.

답변

9

내가 제대로 문제를 이해하고 SiteCompany 객체의 observableArray를 포함하고 각 Company 객체가 Job 객체의 observableArray을 포함하면, 당신의 접근 방식이 작동하지 않습니다.

data-bind="text: Site().Company().Name"Company 개체를 포함하는 observableArray의 Name 속성을 가져 오려고합니다. 그러나 의 이름을 얻으려면 data-bind="text: Site().Company()[0].Name"을 쓸 수 있습니다.

더 일반적인 방법은 항목을 반복하는 것입니다. 예 :

<!-- ko with: Site --> 
Site name is <span data-bind="text: Name"/> 
<ul> 
    <!-- ko foreach: Company --> 
    <li>Company name is <span data-bind="text: Name"/> 
     <!-- ko foreach: Job --> 
     <li>Job name is <span data-bind="text: Name"/> 
     </li> 
     <!-- /ko --> 
    </li> 
    <!-- /ko --> 
</ul> 
<!-- /ko --> 

자세한 내용은 http://knockoutjs.com/documentation/foreach-binding.html을 참조하십시오.

귀하의 질문에 대한 오해의 소지가있는 경우, 이것이 귀하가 찾고있는 것입니다. 사과드립니다.

+0

감사합니다. foreach 바인딩 경로 (내 배열에 요소가 하나라도 있음에도 불구하고)를 내려갈 것입니다. –