2017-08-04 75 views
0

我有,我環路通過嵌套表對象的列表,而且我顯示的物品反覆使用嵌套的for循環播放模板。遞歸在遊戲框架2.5.X

-skillList是一個列表[技巧]

-Skill是()在模型

-skillObject.getChildrenList定義的對象返回一個列表[技巧]

我想do是能夠顯示這個,但使用某種類型的遞歸,以便如果mylist的嵌套級別發生變化,我不必更改整個模板。那麼有什麼辦法以遞歸的方式做到這一點?

<div class="custom-dd dd dd-nodrag" id="nestable_list_1"> 
<ol class="dd-list"> 
@for(skill <- skillList) { 
    <li class="dd-item"> 
     <div class="dd-handle dd-nodrag row"> 
      <span class="dd-nodrag" id="[email protected]()"> @skill.getLabel() </span> 
     </div> 

    <ol class="dd-list"> 
    @for((child, indexChild) <- skill.getChildrenList().zipWithIndex) { 
     <li class="dd-item" data-id="@indexChild"> 
      <div class="dd-handle dd-nodrag row"> 
       <span id="[email protected]()"> @child.getLabel() </span> 
      </div> 

      <ol class="dd-list"> 
      @for((grandChild, indexGrandChild) <- child.getChildrenList().zipWithIndex) { 
       <li class="dd-item" data-id="@indexGrandChild"> 
        <div class="dd-handle dd-nodrag row"> 
         <span id="[email protected]()"> @grandChild.getLabel() </span> 
        </div> 

       </li> 
      } 


      <div class="text-left addNew" id="[email protected]"> 
       <span> 
        <button class="btn btn-icon w-xs plusBtn 
        btn-primary waves-effect waves-light toggleButton" data-toggle="modal" 
        data-target="#custom-width-modal"> <i class="fa fa-plus" aria-hidden="true"></i> 
        </button> 
       </span> 
      </div> 
      @(index = index + 1) 

      </ol> 
      </li> 
    } 

    </ol> 
    </li> 
} 

</ol> 

先謝謝您的任何答覆。

回答

1

您可以創建一個單獨的模板,採用列表[技巧]作爲參數,使得在提供的列表和這些SkillObjects的孩子SkillObjects。然後在主頁面模板中的第一個嵌套級別使用該模板。像下面 -

SkillTemplate.scala.html

@(skills: List[Skill])() 

<ol class="dd-list"> 
    @for((child, indexChild) <- skills.zipWithIndex) { 
     <li class="dd-item" data-id="@indexChild"> 
      <div class="dd-handle dd-nodrag row"> 
       <span id="[email protected]()"> @child.getLabel() </span> 
      </div> 
      @SkillTemplate(child.getChildrenList()) 
      <div class="text-left addNew" id="[email protected]"> 
       <span> 
        <button class="btn btn-icon w-xs plusBtn 
        btn-primary waves-effect waves-light toggleButton" data-toggle="modal" 
        data-target="#custom-width-modal"> <i class="fa fa-plus" aria-hidden="true"></i> 
        </button> 
       </span> 
      </div> 
      @(index = index + 1) 
     </li> 
    } 
</ol> 

我一直無法對其進行測試