1

Я хотел бы сгенерировать идентификаторы для списка HTML. Список создается динамически из базы данных. Я не могу использовать цикл for или функцию list.zipWithIndex, потому что моя логика содержит несколько циклов для генерации списка, в котором счетчик также должен увеличиваться. Я также попробовал его с определяющей функцией, но его не позволяли переоценивать такие значения: @{id = id + 1}Как увеличивать переменную в шаблоне без цикла - Play 2.1.1, Java

Каков наилучший способ добиться генерации идентификаторов?

Вот часть шаблона (необходимо UniqueID заменить целое число):

<div id="tree"> 
    <ul> 
     <li id="uniqueId"> 
      <a class="dashboard" href="/">Dashboard</a> 
     </li> 
     <li id="uniqueId"> 
      <b>Products</b> 
      <ul id="uniqueId"> 
      @for(cat <- Application.allCategories()) { 
       <li id="uniqueId"> 
       <a class="name" href="@routes.Categories.getd(cat.id).url">@cat.name</a> 
       <ul> 
       @for(prod <- Application.allProducts()) { 
       <li id="uniqueId"> 
        <a class="name" href="@routes.Product.getById(prod.id).url">@prod.name</a> 
       </li> 
@*more code and the closing tags...*@ 

ответ

3

Используйте только ... ID объекта приставку, чтобы сделать его уникальным, например, для первого предложения:

@for(cat <- Application.allCategories()) { 
     <li id="[email protected]"> 

для второго:

@for(prod <- Application.allProducts()) { 
     <li id="[email protected]"> 

или если тот же продукт может отображаться в нескольких категориях приставки это также с cat.id:

@for(cat <- Application.allCategories()) { 
    <li id="[email protected]"> 
    @for(prod <- Application.allProducts()) { 
     <li id="[email protected](cat.id)[email protected](prod.id)"> 
+0

спасибо, не знаю, почему я не думал об этом ;-) ставить cat_ или prod_ перед каждым звуком, который звучит хорошо! –

Смежные вопросы