将隐藏的输入值绑定到 ng-init

Bind hidden input value to ng-init

我正在尝试调整在此处找到的 angular 联系表: http://www.chaosm.net/blog/2014/05/21/angularjs-contact-form-with-bootstrap-and-phpmailer/

它与常规文本字段完美配合,我通过 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" />

不幸的是,此方法不适用于来自另一个控制器的文本值或 angular 表达式 - 尽管值属性被正确呈现,但 ng-init 似乎没有接受它:

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

还有 none 到目前为止我发现的其他解决方案:Bind hidden inputs to model in angular Angularjs assigning value to ng-model using ng-init

为什么 ng-init 只接受数值? 为什么在第二种情况下没有将值属性表达式传递给 ng-init?

非常感谢您的帮助,因为我花了几个小时试图解决这个问题...

你快到了。 ng-init 中的字符串值需要用引号引起来。

所以这意味着:

ng-init="formData.inputSubject = pprice"

应该变成:

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