2015-08-09 70 views
1

我使用這樣的代碼來創建/編輯聯繫人表單。我需要從模型中獲取一些值,如果我正在編輯表單,並且什麼也不做,如果我正在創建新的。以腳本形式播放縮放

@(fieldForm: Form[MyModel]) 
@import helper._ 

@main("Create new") { 
    @form(routes.Actions.createFieldHolder()) { 

    <html> 
     <head> 
      <script> 
       function funcOnLoadSubForm(){ 

        @* 
        if(@fieldForm.get==null) { 
        ... 
        } 
        *@ 
       OR 
        @* 
        if(@fieldForm.get.equals(null)) { 
        ... 
        } 
        *@ 
       OR 
        @* 
        if(@fieldForm.get.eq(null)) { 
        ... 
        } 
        *@ 
       } 
      </script> 
    </head> 
    <body onload="funcOnLoadSubForm()"> 

    </body 
} 

我總是得到一個錯誤:IllegalStateException:沒有值。

回答

1

API Documentation指出getreturn the concrete value, if the submission was a success.。由於您正在創建新模型,因此您尚未提交任何意味着數據爲空的數據,並且get將引發異常。

您可以通過foreachfieldForm.value解決此問題。例如:

<script> 
    function funcOnLoadSubForm(){ 
     @fieldForm.value.foreach { data => 
      // Do something here if fieldForm was submitted 
     } 
    } 
</script> 
+0

我不明白,爲什麼它更新進入此代碼塊。我填寫它:'MyModel row = MyModel.finder.byId(id); 表格 rowForm = Form.form(MyModel.class).fill(row);' – user3807830