2015-02-23 71 views
1

我努力適應這裏找到的角接觸形式: http://www.chaosm.net/blog/2014/05/21/angularjs-contact-form-with-bootstrap-and-phpmailer/綁定隱藏輸入值NG-初始化

它與普通的文本字段完美的工作,我得到的PHP郵件提交的所有數據。但是,爲了特定的目的,我需要從隱藏的輸入字段提交數據。由於未知原因,當我通過使用兩個隱藏的輸入這樣的數值它仍然有效:

<input type="hidden" ng-model="pprice" ng-init="pprice=241.50" value="241.50" /> 
<input type="hidden" ng-model="formData.inputSubject" id="inputSubject" name="inputSubject" ng-init="formData.inputSubject = pprice" /> 

不幸的是該方法不與文本值或從另一個控制器的角度表達工作 - 雖然value屬性是被正確地呈現,在NG-INIT似乎並沒有把它:

<input type="hidden" ng-model="formData.inputSubject" value="{{post.title}}" ng-init="formData.inputSubject=post.title" /> 

也沒有其他的解決方案,我發現到目前爲止的工作:Bind hidden inputs to model in angular Angularjs assigning value to ng-model using ng-init

爲什麼d oes ng-init只接受數值嗎? 爲什麼在第二種情況下值屬性表達式沒有被傳遞給ng-init?

我真的很感激一些幫助,因爲我已經花了幾個小時,試圖解決這個...

+0

爲什麼你還要歸因於你的''input' value'?你已經指定了一個模型。 – MamaWalter 2015-02-23 21:52:13

+0

我強烈建議閱讀[this first](http://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-background)以更好地理解Angular。這不是關於如何設置'ng-init'(它甚至不應該用於這個目的),因爲它是關於如何正確使用Angular的。我懷疑你是從一個非常錯誤的角度接近這個 – 2015-02-23 22:36:28

+0

同意@NewDev,基本上你可以像這樣在控制器中設置你的模型值:$ scope.formData.inputSubject = SOME_VALUE;或者通過從一些服務/常量獲取它們:$ scope.formData.otherInputSubject = myService.getDefaultValue(); – shershen 2015-02-23 22:48:37

回答

2

你幾乎沒有。 ng-init中的字符串值需要引號。

所以,僅表示:

ng-init="formData.inputSubject = pprice" 

應該變成:

ng-init="formData.inputSubject = 'pprice'"