1

我想为 HTML 列表生成 ID。该列表是从数据库动态生成的。我不能使用 for 循环或 list.zipWithIndex 函数,因为我的逻辑已经包含一些用于生成列表的循环,其中计数器也需要递增。我也尝试使用定义函数,但不允许像这样重新分配值:@{id = id + 1}

完成 ID 生成的最佳方法是什么?

这是模板的一部分(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...*@
4

1 回答 1

3

仅使用 ... 对象的 id 前缀使其唯一,例如第一个列表:

@for(cat <- Application.allCategories()) { 
      <li id="cat_@cat.id">

第二:

@for(prod <- Application.allProducts()) {
      <li id="prod_@prod.id">

或者,如果相同的产品可以显示在多个类别中,也可以使用 cat.id 作为前缀:

@for(cat <- Application.allCategories()) { 
    <li id="cat_@cat.id">
    @for(prod <- Application.allProducts()) {
        <li id="prod_@(cat.id)_@(prod.id)">
于 2013-09-12T19:15:24.193 回答