如何在Play Framework 2.0的模板中有条件地分配变量值



我想创建一个称为样式的变量并分配其值基于输入参数的值@filter

我阅读了剧本的文档,但是我可以得到的当前解决方案它的工作就像:列表模板部分是重复的...

@(filter: String = "error")(body: (String) => Html)
@filter match {
  case "HOT" => {
    <ul class="list">
      <li class="icon-hot">this is a list item..</li>
      <li class="icon-hot">this is a list item..</li>
    </ul>   
  }
  case "NEW" => {
    <ul class="list">
      <li class="icon-new">this is a list item..</li>
      <li class="icon-new">this is a list item..</li>
    </ul>   
  }
}

如何分配"图标new"&amp;将"图标式"变成变量@Style并在编写这样的列表模板时使用后者?

    <ul class="list">
      <li class="@style">this is a list item..</li>
      <li class="@style">this is a list item..</li>
    </ul>  

这似乎有效...

in style.scala.html

@(filter: String = "error")(body: (String) => Html)
@filter match {    
  case "OPEN" => {
      @body("icon-plus")
  }
  case "FOLLOWING" => {
      @body("icon-comments")
  }
  case "HOT" => {
      @body("icon-fire")
  } 
}

和列表模板

@(filter: String = "HOT")
@style(filter) { style =>
  <ul class="list">
    <li class="@style">this is a list item..</li>
    <li class="@style">this is a list item..</li>
  </ul>   
}

但我仍然不清楚这是如何工作的...尤其是以下部分:

(body: (String) => Html)
@body("icon-plus")

最新更新