2015-09-19 2 views
0

Я изучаю Play, и я встретил следующую проблему: я хочу отображать элементы моего списка в шаблоне Scala. Из этого post, я увидел, что я могу использовать функцию map в списке, но в моем случае, вместо того, чтобы показать содержимое свойств, это показывает, что:Карта в шаблоне scala не печатает элементы

@product.description 
@product.name 
@product.description 
@product.name 
@product.description 
@product.name 
@product.description 
@product.name 
@product.description 

Product.scala

package models 

case class Product(ean : Long, name : String, description : String) 

object Product { 
    var products = Set(
    Product(5010255079763L, "Paperclips Large", "Large Plain Pack of 1000"), 
    Product(5018206244666L, "Giant Paperclips", "Giant Plain 51mm 100 pack"), 
    Product(5018306332812L, "Paperclip Giant Plain", "Giant Plain Pack of 10000"), 
    Product(5018306312913L, "No Tear Paper Clip", "No Tear Extra Large Pack of 1000"), 
    Product(5018206244611L, "Zebra Paperclips", "Zebra Length 28mm Assorted 150 Pack") 
) 

    def findAll = products.toList.sortBy(_.ean) 
} 

Здесь как отобразить элементы:

@(products : List[Product])(implicit lang : Lang) 

@main(Messages("application.name")) { 
<dl class="products"> 
    <!-- This is working --> 
    <!-- @for(product <- products) { --> 
    <!-- <dt>@product.name</dt> --> 
    <!-- <dd>@product.description</dd> --> 
    <!-- } --> 
    @products.map(product => 
    <dt>@product.name</dt> 
    <dd>@product.description</dd>) 
</dl> 
} 

Почему выражение for работает а не map как я хочу?

ответ

1

Фигурные скобки должны использоваться вместо скобок, когда у вас есть многострочное выражение

@products.map{product => 
<dt>@product.name</dt> 
<dd>@product.description</dd> 
} 
Смежные вопросы