2016-09-18 230 views
0

我是斯卡拉新手。我有預定義的HTML文件。我想在HTML文件中插入動態內容。生成動態HTML文件

e.g. 
$for(products in product) 
    <div>product.name</div> 
    <div>product.description</div> 

這裏products是Scala的集合。我可以加載html文件並提供動態值(products)。

你能否告訴我如何在Scala中做到這一點?

回答

1

捻模板

編譯,類型安全,可組合,斯卡拉HTML標籤內(類似於角JS [嵌入HTML javscript])

Twirl模板,讓你寫一個HTML中階,其類型安全,被編譯爲函數並且可組合。

orders.scala.html

@(customer: Customer, orders: List[Order]) 

<h1>Welcome @customer.name!</h1> 

<ul> 
@for(order <- orders) { 
    <li>@order.title</li> 
} 
</ul> 

沒有任何庫

Scala有字符串插值很好的支持,並且還提供三重引號語法來聲明與協商字符,這是非常方便的字符串。你可以用這種簡單的方法

case class Product(name: String) 

    case class Html(content: String) 

    def produceHtml(products: List[Product]): Html = { 
    Html { 
     products.map { product => 
     s""" 
      |<div> ${product.name} </div> 
     """.stripMargin 
     }.mkString("\n") 
    } 
    } 
+0

感謝提供兩種選擇產生動態HTML。 –