2016-03-03 74 views
0

我想使用helper.repeat來創建幾個輸入元素。但我想將輸入標籤聲明爲html而不是使用@ helper.input方法。但要做到這一點,我不得不在這個循環內使用@index。我無法實例化並增加此變量。我嘗試了類似下面的代碼,但我的輸出顯示在html頁面中: BaseScalaTemplate([email protected])= {0} 以html格式輸出。聲明變量在@ helper.repeat中使用 - PlayFramework

 <div class="form-group"> 
      <div class="col-sm-offset-2 col-sm-10"> 

       @index = {0} 
      @helper.repeat(questionForm("answer.alternatives"), min = 7) { (alternative) => 
       <div class="checkbox"> 

        <input type="checkbox" value="@alternative("correct") "> 
        <input type="text" id="answer_alternatives_(@index)_text" name="answer.alternatives[@index].text" value=""> 
       </div> 
      } 
      </div> 
     </div> 

是否有另一種可能更乾淨的方式來做我想要的?也許用@for?

我用Java8的playframework 2.4.6。

回答

1

Playframework會讓你做你需要的,但你必須以另一種方式做。

1)您的表單定義將有一個Seq[String]來保存來自該模板的結果。

2)您的表單定義將需要包含此更改。你的情況:

"answer_alternatives" -> seq(nonEmptyText) 

3)從模板更改姓名和身份證到@{alternative.name}這樣Playframework可以將輸入的文本鏈接字符串的序列。

<input type="text" id="@{alternative.name}" name="@{alternative.name}" value=""> 
+0

我是新玩家框架。如果沒有更自然的做法,我認爲這不是通常所做的那種事情?這種映射通常如何實現?我應該創建一種TransferObject來保存視圖輸入嗎?或者可以使用DynamicForm並從視圖中分離模型,直到它到達Controller層? – alexpfx

+0

由於這是另一個問題(需要很長時間的回覆),我會創建另一個問題,通過一個例子確切地詢問您需要什麼。 –

+0

2天前我問了另一個相關的問題:http://stackoverflow.com/q/35664642/4785114我想要的是或多或少的,但我想在沒有@helper類的窗體中使用純html – alexpfx