Play框架2.5.X中的递归

时间:2017-08-04 15:49:37

标签: recursion playframework playframework-2.0

我有一个播放模板,我循环浏览具有嵌套列表的对象列表,并且我使用嵌套for循环迭代显示这些项目。

-skillList是一个List [技能]

-Skill是模型中定义的对象

-skillObject.getChildrenList()返回一个列表[Skill]

我想要做的是能够显示这个但使用某种类型的递归,这样如果mylist的嵌套级别发生变化,我就不必更改整个模板。那么有什么办法以递归的方式做到这一点?

[dbserver1:~]# chmod g-s /usr/bin/lsof

提前感谢您的回答。

1 个答案:

答案 0 :(得分:1)

您可以创建一个单独的模板,将List [Skill]作为参数,并在提供的列表中呈现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="content_@child.getCleanUri()"> @child.getLabel() </span>
            </div>
            @SkillTemplate(child.getChildrenList())
            <div class="text-left addNew" id="meta-@index"> 
              <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>

我无法测试它