我是一個貿易前端,但我被要求跳到一個利用Play框架的Scala項目,所以包括Twirl。我試圖創建,這取決於傳入的字符串,顯示略有不同輸出模板斯卡拉/旋轉變量和範圍/定義
這裏是我的代碼:
@(status: String)(implicit messages: Messages)
@{
if(status == "00") {
val pageTitle = "Page title"
val appStatus = "className"
val title = "message"
val subTitle = "message"
val step1Status = "className"
val step2Status = "className"
val step3Status = "className"
val image1 = "/customs/assets/images/image.png"
val image2 = "/customs/assets/images/image.png"
val image3 = "/customs/assets/images/image.png"
val optionalHeading = ""
val optionalParagraph = ""
val listContents = "<li>@Messages('message')</li><li>@Messages('message')</li>"
val optionalLink = "<br /><a class='button' href='@routes.DashboardController.display(custom)' role='button'>@Messages('message')</a>"
}
if(status == "01") {
//Other variables
}
if(status == "04") {
//Etc...
}
}
@layout(${pageTitle}) {
<div class="content__body">
<div class="hero">
<div class="${appStatus}">
<h1 class="bold-large">@Messages(${title})</h1>
<p>
${afterSubTitle}
</p>
<ol class="appstatus-steps">
<li><span class="${step1Status}"><img alt="Complete" title="Complete" src=" + ${image1} + ">@Messages("messages.Received")</span></li>
<li><span class="${step2Status}"><img alt="Complete" title="Complete" src=" + ${image2} + ">@Messages("messages.Processing")</span></li>
<li><span class="${step3Status}"><img alt="Complete" title="Complete" src=" + ${image3} + ">@Messages("messages.Decision")</span></li>
</ol>
</div>
</div>
${optionalHeading}
${optionalParagraph}
<h2>@Messages("messages.next")</h2>
<ul class="list list-bullet">
${listContents}
</ul>
${optionalLink}
</div>
}
所以,你可以看到,這個想法是,這使用代碼(狀態)調用頁面並基於該字符串定義了一些變量,這些變量改變了頁面的形成方式;內容/ CSS類/圖片等
這不起作用(你可能會驚訝地學習!)
這真是我不清楚爲什麼它不雖然。我以爲你使用$ {Variable}格式訪問變量,但可能應該使用@Variable格式。
即使當我嘗試將它們更改爲@Variable方式時,我仍然遇到問題,並且我粗略地理解這是用Scala/Twirl中的範圍做的,並且有一個可以使用的「定義」關鍵字。我讀過一些文檔,但我沒有得到它。
任何人都可以對此有所瞭解嗎?
編輯
好吧,讓我們只考慮下面的代碼來代替:
@(status: String)(implicit messages: Messages)
@{
if(status == "00") {
val myClass = "custom-class-1"
}
if (status == "01") {
val myClass = "custom-class-2"
}
@layout("page title") {
<div class="@myClass">This is a div</div>
}
所以,「所有我想要做的」 :)是能定義基礎上的各種變量狀態,然後在頁面的模板中使用這些變量。
這有道理嗎?我對斯卡拉很新,所以目前我的Tuples/Defining已經失效,但我正在學習!
哦,小錯誤:)旋轉總有一些技巧,應該試過intellij:p – pedrorijo91
啊!這是一個旋轉的東西?我想知道是否是這種情況 - 如果沒有你就不能排序,儘管如此謝謝! –