Добавить инкремемтер к id в ejs

Я работаю над страницей javascript, которая использует формат MVC и canJS. В моем свойстве просмотра, когда я добавляю новые элементы, я хочу добавить идентификаторы и динамически назначать новые идентификаторы каждой вещи, которую я загружаю.

Код в моем файле .ejs выглядит примерно так:

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

Где страницы повторяются. Я хочу добавить инкремент, чтобы каждая страница, которую я добавляю, имела уникальный идентификатор для дальнейшего использования. Возможно ли это в файле .ejs?

Спасибо


person ford prefect    schedule 30.10.2013    source источник
comment
Страницы - это массив? Затем ключевым параметром должен быть индекс текущего элемента, который идеально подходит для использования в качестве инкремента: canjs .com/docs/can.each.html   -  person Hannes Obweger    schedule 30.10.2013
comment
@HannesObweger отличный звонок. Напишите как ответ, если хотите   -  person ford prefect    schedule 30.10.2013


Ответы (2)


Если итерация, предоставленная can.each, является массивом, функция обратного вызова can.each получает индекс текущего элемента в качестве второго параметра. Это должно прекрасно использоваться в качестве идентификатора.

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

person Hannes Obweger    schedule 30.10.2013

EJS — это просто встроенный javascript. Вы можете использовать цикл по страницам массива, используя forEach, и ключевая переменная будет увеличиваться с каждой страницей (в основном то, что предложил Ханнес Обвегер).

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