2015-02-23 2 views
1

Я пытаюсь адаптировать угловую форму контакта найти здесь: http://www.chaosm.net/blog/2014/05/21/angularjs-contact-form-with-bootstrap-and-phpmailer/Bind скрытые входное значение для нг-инициализации

Он прекрасно работает с регулярными текстовыми полями, и я получаю все представленные данные по 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" /> 

К сожалению, этот метод не работает с текстовым значением или угловым выражением от другого контроллера - хотя значение атрибута является оказывается правильно, нг-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 принимают только числовые значения? Почему выражение атрибута value не передается в ng-init во втором случае?

Я бы очень признателен за помощь, как я потратил несколько часов, пытаясь решить эту проблему ...

+0

почему вы атрибут 'value' на вашем' input'? вы уже указываете модель. – MamaWalter

+0

Я настоятельно рекомендую прочитать [этот первый] (http://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-background), чтобы лучше понять Angular. Речь идет не о том, как установить 'ng-init' (который не должен использоваться для этой цели), так как это касается правильного использования углового. И я подозреваю, что вы приближаетесь к этому с очень неправильной точки зрения. –

+0

согласен с @NewDev, в основном вы можете установить свои значения модели в контроллере следующим образом: $ scope.formData.inputSubject = SOME_VALUE; или путем их получения из некоторой службы/константы: $ scope.formData.otherinputSubject = myService.getDefaultValue(); – shershen

ответ

2

Вы почти там. Значения строк в ng-init требуют кавычек вокруг них.

Так что просто означает, что:

ng-init="formData.inputSubject = pprice" 

должны стать:

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