Ember.js 컬렉션 반복의 위치 색인
-
28-10-2019 - |
문제
ember.js에서 반복하는 동안 위치 색인을 얻는 방법이 있습니까? 라코 디스
다음과 같은 방법을 찾고 있습니다. 라코 디스
업데이트 :
@ebryn의 주석에 따라 아래 코드는 각 항목에 대해 중첩 된보기를 사용하지 않고 작동합니다. 라코 디스
adjustedIndex와 같은 것이 있지만 중첩 된 뷰가 필요합니다.
해결책
오래된 질문이지만 여전히 많은 인기를 얻고 있습니다.현재 Ember.JS 버전에서는 _view.contentIndex
를 사용하여 루프 내부에 현재 색인을 표시 할 수 있습니다.
라코 디스
조정 된 색인이 필요한 경우 (예 : 1부터 시작) 재사용 가능한 도우미 유전자 태그 코드를 만들 수 있습니다. 라코 디스
그런 다음 다음과 같은 방식으로 사용합니다. 라코 디스
업데이트
ember 1.11부터는 할 수 있습니다 라코 디스
다른 팁
RC6에서 CollectionView
는 컬렉션의 렌더링 된 각 뷰에 대한 contentIndex
속성을 제공합니다.Each
도우미는 구현에서 CollectionView
를 사용하므로 uou는 다음과 같은 방식으로 색인에 액세스 할 수 있습니다.
라코 디스
실제로 {{each}} 도우미를 사용하여 현재 색인의 위치를 가져올 수 있습니다.목록의 모든 항목에 대한보기를 만든 다음 {{_parentView.contentIndex}}
를 사용해야합니다.
라코 디스
<script type="text/x-handlebars">
{{#each App.peopleController}}
{{#view App.PersonView contentBinding="this"}}
Index {{_parentView.contentIndex}}: {{content.name}} {{adjustedIndex}} <br />
{{/view}}
{{/each}}
</script>
작동하는 예는 이 jsFiddle 을 참조하세요.
Ember 9.8 및 1.0 이전 버전에서는 가상 부모 ({{#each}})를 얻기 위해 뷰로 "contentIndex"를 래핑 할 수 있습니다.뷰를 추가하지 않으면 컨텍스트가 기본 템플릿, 목록의 항목 또는 {{#with}}
로 수동으로 설정 한 항목이됩니다.JS 측에서 {{#each}}
를 얻는 것은 불가능하지 않지만 이러한 자식 뷰를 뒤집는 것은 훨씬 더 고통 스럽습니다.
라코 디스
피들러를 원하는 경우에만 해당됩니다.
참고 : 숫자를 수정하려는 경우보기를 만들고 생성 태그 코드를 수행하여 색인을 가져올 수 있습니다.
이것은 현재 Handlebars 또는 Ember.Handlebars
의 기능이 아닙니다.우리는 contentIndex
/ #collection
안에 사용할 수있는 Ember.CollectionView
가 있습니다.나는 #each
에서도 지원하는 것이 유용하다고 생각합니다.GitHub 저장소에 문제를 제출하세요. https://github.com/emberjs/ember.js/문제
Ember 1.11.0부터 index
는 each
블록의 선택적 매개 변수입니다.
라코 디스
컬렉션을 사용하여 약간의 ud3323 솔루션을 수정했습니다. 여기에서 확인하십시오. http://jsfiddle.net/johngouf/WSwna/13/ 라코 디스
당신도 이런 일을 할 수있을 것 같아요 라코 디스