如何在Play框架2 scala模板中创建List

时间:2012-07-31 18:54:57

标签: scala playframework-2.0

我想在模板中创建一个List(scala.html)。

我试过了

val list = @{ List("a", "b", "c", "d", "e") }

val list = List("a", "b", "c", "d", "e")

@list = @{ List("a", "b", "c", "d", "e") }

@list = List("a", "b", "c", "d", "e")

@defining(List("a", "b", "c", "d", "e")) { list =>
    // code here
}

但我总是收到错误object List is not a value。我不知道Scala(我现在正在学习),但在API中它有以下示例

// Make a list via the companion object factory
val days = List("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")

我想要做的是过滤地图。

我有一个Map [Symbol,Any],我正在尝试获取上面列表中没有键的所有项目。像这样的东西

@f = @{ map.filterKeys(!list.contains(_)) } 
// i do not know if the above statement is correct, because i can't get over there 

3 个答案:

答案 0 :(得分:6)

错过了导入。我添加了

@import scala.collection.immutable._

或只是

@import scala._

在视图中(scala.html)并且运行得很好。

我认为scala包类似于java.lang

答案 1 :(得分:2)

从您看来,您似乎正在将其中的代码写入其中一个视图文件中。而不是在scala中解决这个问题,你最好在控制器类中处理这个任务,然后将该列表传递给视图文件。用'@'表示法做这种工作变得棘手。

答案 2 :(得分:-2)

我认为您应该使用Set代替List,如下所示:

@{ map.filterKeys(!Set("a", "b", "c", "d", "e").contains(_)) }