2013-10-30 2 views
0

MVC 형식과 canJS를 사용하는 javascript 페이지에서 작업 중입니다. 내 뷰 속성에서 새 요소를 추가 할 때 ID를 추가하고로드하는 각 요소에 새 ID를 동적으로 할당하려고합니다. 내 .ejs 파일ejs에 incrememter 추가

코드는 somehting 다음과 같이이다 : 페이지가 반복 가능한입니다

<ul> 
<% can.each(pages, function(val, key){ %> 
<li id="<% 'page' + // Add incrementer here%>"><%= val.attr('Title') %> 
</li> 
</ul> 

. 내가 추가하는 모든 페이지가 나중에 참조 할 수있는 고유 한 ID를 갖도록 증분기를 추가하려고합니다. 이것은 .ejs 파일에서 가능합니까?

감사합니다.

+0

페이지가 배열입니까? 그런 다음 "키"매개 변수는 현재 요소의 색인이어야하며 이는 인크 리 멘터로서 완벽하게 사용할 수 있어야합니다. http://canjs.com/docs/can.each.html –

+0

@HannesObweger 훌륭한 콜. 원하는 경우 답변으로 게시하십시오. –

답변

2

can.each의 콜백 함수는 두번째 파라미터로서 현재 요소의 인덱스를 수신한다. 이것은 식별자로 완벽하게 사용할 수 있어야합니다.

http://canjs.com/docs/can.each.html

3

EJS는 단순히 자바 스크립트입니다. forEach을 사용하여 배열 페이지를 통해 루프를 사용할 수 있으며 키 변수는 모든 페이지에서 증가합니다 (기본적으로 Hannes Obweger가 제안한 것). can.each에 설치된 반복 가능한 배열 인 경우

<ul> 
    <% pages.forEach(function(val, key) { %> 
     <li id="page_<%= key %>"><%= val.Title %></li> 
    <% }); %> 
</ul>