2017-11-10 4 views
0

다음 표가 있습니다.테이블에서 동시에 두 컬렉션의 녹아웃 js의 Foreach 반복

<tbody data-bind="foreach: TuDispTexts, foreach: ApplicationTexts"> 
    <tr> 
     <td data-bind="text: DictionaryTextId"></td> 
     <td><input data-bind="value: TuDispTexts.Culture" type="text"/></td> 
     <td><input data-bind="value: TuDispTexts.DictionaryValue" type="text" /></td> 
     <td><input data-bind="value: ApplicationTexts.DictionaryValue" type="text" /></td> 
    </tr> 
</tbody> 

두 컬렉션을 한꺼번에 반복하고 내가 제시 한 이름으로 두 개를 액세스 할 수 있습니까? 제안 된 솔루션이 작동하지 않습니다.

모델을 정의하는 기능.

function tuDispModel() { 
     this.AetrState = ko.observable(); 
     this.TuDispTexts = ko.observable; 
     this.ApplicationTexts = ko.observable(); 

     this.texts = ko.pureComputed(function() { 
      return tuDispInfo.TuDispTexts.map(function (tu, index) { 
       return { tu: tu, app: tuDispInfo.ApplicationTexts[index] }; 
      }); 
     }) 

; }

전화 주문.

$(document).ready(function() { 
     tuDispInfo = new tuDispModel(); 
     getTuDispData(corewebApiUrl, tuDispId); 
     ko.applyBindings(tuDispInfo); 
    }); 
+0

@NisargShah합니다. 내 사건에 어떻게 적응할 수 있니? – maciejka

+0

'with : $ root.arr1() [$ index()]'를 사용하여 올바른 배열 항목에 바인드 한 다음 'text : Culture'와 같이 일반적으로 속성에 액세스 할 수 있습니다. – Nisarg

+0

@ NisargShah 당신이 어떻게 얻을 수있는 예제를 쓸 수 있습니까? – maciejka

답변

1

TuDispTextsApplicationTexts 병렬 컬렉션 (예, TuDispTexts[0]TuDispTexts[1]ApplicationTexts[1]에 등을 관한 ApplicationTexts[0] 관련), 당신은 다음 둘을 참조하는 계산 된 모음을 만들 수 있습니다 있다고 가정 번호 그것을 반복합니다.

예. (이것은 스케치이다, 완벽한 코드 당신은 당신의 프로젝트에 쿵하는 소리 할 수 ​​없습니다) : 다음

vm.texts = ko.pureComputed(function() { 
    return vm.TuDispTexts.map(function(tu, index) { 
     return {tu: tu, app: vm.ApplicationTexts[index]}; 
    }); 
}); 

... 그들이 인덱스 배열에 도착 주어진 한가 지에서

<tbody data-bind="foreach: texts"> 
    <tr> 
     <td data-bind="text: /*Unclear where this comes from: DictionaryTextId*/"></td> 
     <td><input data-bind="value: texts.tu.Culture" type="text"/></td> 
     <td><input data-bind="value: texts.tu.DictionaryValue" type="text" /></td> 
     <td><input data-bind="value: texts.app.DictionaryValue" type="text" /></td> 
    </tr> 
</tbody> 
+0

이 vm.texts는 JS 함수입니까? 그것은 태그 스크립트에 있어야합니까? – maciejka

+0

@maciejka : 그 블록은 자바 스크립트입니다. 뷰 모델에이를 포함시켜 필요한 변경을 가할 수 있습니다. –

+0

문제가 업데이트되었습니다. 표시되지 않고 매핑 문제입니다. tuDispInfo.TuDispTexts.map이 함수가 아닙니다. – maciejka