2011-10-13 3 views
1

바운드중인 현재 인덱스에 액세스하는 방법을 알아 내려고합니다. 모델 자체는 신경 쓰지 않고, 현재 관찰 가능한 배열 항목이 인덱스 X에있는 경우 함수를 실행하려고합니다. 이것이 가능합니까?Knockout.js - 모델 데이터의 항목 위치를 기준으로 한 조건부 값

http://jsfiddle.net/cmschick/hyHQW/2/에 시각적 인 참고 자료가 있습니다.

내가 해결하려고하는 문제는 일치시킬 열 너비가 필요하다는 것입니다. 지금은 두 테이블을 가지고 있지만 자동으로 너비를 처리 할 것이지만 내 문제는 행 0, 셀 0 및 텍스트에 "알레르기"텍스트를 추가하는 방법입니다. "불리한 반응" 행 X 셀 0 ...

바라 건데 내가 고려하지 않은 트릭이 있기를 바랍니다. 나는 정말로 서버 측에서 마크 업을 만들고 싶지 않다. 모든 포인터가 많이 감사 할 것입니다.

감사합니다.

답변

2

보통, 다음과 같이 제안합니다 : https://groups.google.com/d/topic/knockoutjs/LbfktgENJPk/discussion observableArray의 항목에 대한 색인을 유지합니다.

dependObservables에서 배열을 반환하는 것처럼 보이므로 실제로 그렇게하지는 않습니다.

또 다른 생각은 당신이 행을 추가 할 때마다 인덱스의 당신의 result 당신의 dependentObservables에서, 계속 트랙을 구축하고 실제로 결과에 행을 누르면, 같은 물체를 밀어하는 것 : { data: row, index: currentIndex }. 그런 다음 data.x에 결합하거나 할 data-bind="with: data"

+0

안녕하세요, 당신이 제안한 것을 시도했지만 Chrome 개발자 도구에서 DOM을 검사 할 때 내가 추가 한 숨겨진 필드와 $ data.index에 바인딩하는 값이 ""입니다. $ data를 사용하여 올바르게 참조하고 있습니까? 색인? – ChrisS

+0

코드가 업데이트되었습니다. 여러 지점을 밀고 있으므로 색인이 제대로 부착되었는지 확인해야합니다. '$ data.index' 또는 그냥'index'가 맞을 것입니다. –

+0

안녕하세요, 죄송합니다. 필들의 주소가 바뀌 었습니다. 다음은 올바른 주소입니다. http://jsfiddle.net/cmschick/hyHQW/ – ChrisS

0

에 관한 : 지금 나는 두 개의 테이블을 가지고 있지만 난 그냥 자동 폭을 돌볼 것입니다하지만 내 문제는 방법이다, 일을하고 싶은

중첩 된 템플릿을 사용하는 경우 ... 내가 행 0, 셀에 0 행 X 셀 0의 텍스트 "불리한 반응"에 텍스트 "알레르기"를 추가

을 - 메인 템플릿에 일반 사람 정보와 테이블을 렌더링한다. 전자 구조를 사용하여 알레르기 반응을 일으키고 부작용을 유발하는 구조를 사용하면 이러한 길이로 갈 필요가 없으며 문제를 단순화 할 수 있습니다. 나는 비슷한 문제를 가지고 있었고 확실히 나에게 잘 맞았다.

+0

아, 고맙습니다. – ChrisS

관련 문제