如何在play framework 2.0的模板中有条件地赋值变量?

时间:2012-11-01 09:30:34

标签: scala playframework-2.0

我想创建一个名为style的变量并赋值 基于输入参数@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>   
  }

}

如何指定“icon-new”&amp; “icon-hot”到变量@style并在编写像这样的列表模板时使用它?

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

1 个答案:

答案 0 :(得分:0)

这似乎有用......

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")