2012-05-01 52 views
20

我正在嘗試爲表單模板助手提供in the play 2 scala tutorial指令。我陷入了「編寫你自己的字段構造函數」一節。它給出了一個示例模板(沒有說的文件名應該是什麼):在Play 2(scala)中創建一個自定義字段構造函數

@(elements: helper.FieldElements) 

<div class="@if(elements.hasErrors) {error}"> 
    <label for="@elements.id">@elements.label</label> 
    <div class="input"> 
     @elements.input 
     <span class="errors">@elements.errors.mkString(", ")</span> 
     <span class="help">@elements.infos.mkString(", ")</span> 
    </div> 
</div> 

然後,它顯示了這個代碼:

object MyHelpers { 
    implicit val myFields = FieldConstructor(myFieldConstructorTemplate.f)  
} 

我感到困惑,這是應該如何涉及到模板。 (例如,模板文件是否應該稱爲myFieldConstructorTemplate.scala.html?)我嘗試了一些變化,但沒有運氣。

我對scala和Play都很陌生,但我也知道play 2,它的文檔是新的,所以我不確定我錯過了什麼令人難以置信的明顯的東西。

謝謝!

+0

你試過調用它'myFieldConstructorTemplate.scala.html'?據我所知,這就是它應該如何運作的。 –

+0

https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/views/helper/twitterBootstrap/package.scala - 我看到這個文件可能有助於理解初始化字段構造函數 – asyncwait

回答

9

在本教程中的代碼是沿着文本:

通常你需要編寫自己的場構造函數。通過 開始寫一個模板,如:

這意味着你必須創建自己的模板(xxxx.scala.html),並添加里面的代碼。在這之後,你與他們提供的(記得將它添加到使用您的自定義字段中的每個階模板)的代碼的模板導入:

@implicitField = @{ FieldConstructor(xxxx.f) } 

檢查播放的樣本,窗體樣品使用類似的方法與Twitter引導。

+0

嗯,這是我嘗試的第一件事,它不起作用。錯字,也許?我會再給它一次。謝謝! –

+1

2.4的文檔建議'隱式val myFields = FieldConstructor(html.xxxx.f)'。我使用其他模板在'views'目錄中創建了'xxxx.scala.html',所以我需要'隱式val myFields = FieldConstructor(views.html.xxxx.f)'。 –

16

我剛剛有同樣的問題,我同意你的文檔不清晰在所有...

可能出現的錯誤1

not found: value FieldConstructor 

這意味着你有沒有進口幫手該指令:

@import helper._ 

可能的錯誤2

not found: value implicitConstructor 

這意味着您正在將模板構造函數聲明爲模板中的錯誤位置。 :在@ helper.form方法中)​​。爲了解決這個問題,我宣佈我的場構造剛過我的導入說明:

@import form._ 
@import helper._ 

@implicitConstructor = @{ FieldConstructor(foundation_field.render) } 

(我foundation_field.scala.html文件是在views.form包)。

-1

要跟隨斯卡拉隱含關鍵字的邏輯,該文件是隱含的太;)

Scala和發揮都太不成熟,現在,出於這一原因的文檔是非常差的。

這SOF答案是非常好的:https://stackoverflow.com/a/15268122/1163081

您還可以查看更多的例子播放源:https://github.com/playframework/playframework/blob/master/framework/src/play/src/main/scala/views/html/

還是這傢伙似乎找到了解決方案:https://groups.google.com/forum/#!msg/play-framework/2e1EqZJ-Qks/gXD1oo0IjfcJ

相關問題