как создать список в шаблонах scala play framework 2

Я хочу создать список в шаблоне (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 

person pbaris    schedule 31.07.2012    source источник


Ответы (3)


Просто не хватает импорта. я добавил

@import scala.collection.immutable._

или просто

@import scala._

в поле зрения (scala.html) и работало нормально.

Я думал, что пакет scala похож на пакет java.lang

person pbaris    schedule 31.07.2012

Судя по тому, что вы делаете, получается, что вы пишете этот код в одном из файлов представления. Вместо того, чтобы разбираться с этим в scala, вам лучше справиться с этой задачей в классе контроллера, а затем передать этот список в файл представления. Выполнение такой работы с нотацией '@' становится сложной задачей.

person John Fox    schedule 31.07.2012

Я думаю, вам следует использовать Set вместо List, что-то вроде этого:

@{ map.filterKeys(!Set("a", "b", "c", "d", "e").contains(_)) } 
person ndeverge    schedule 31.07.2012
comment
что, если он получит object Set is not a value тогда? - person om-nom-nom; 01.08.2012
comment
то же самое с Сетом я беру object Set is not a value - person pbaris; 01.08.2012