【发布时间】:2015-02-23 21:41:34
【问题描述】:
我正在尝试调整此处找到的角接触形式: 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" />
不幸的是,此方法不适用于文本值或来自另一个控制器的角度表达式 - 尽管 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
为什么 ng-init 只接受数值? 为什么在第二种情况下 value 属性表达式没有被传递给 ng-init?
我非常感谢一些帮助,因为我已经花了几个小时试图解决这个问题...
【问题讨论】:
-
为什么你的
input上有属性value?你已经指定了一个模型。 -
我强烈建议阅读this first 以更好地理解 Angular。这不是关于如何设置
ng-init(甚至不应该用于此目的),而是关于如何正确使用Angular。我怀疑你是从一个非常错误的角度来处理这个问题 -
同意@NewDev,基本上你可以像这样在控制器中设置模型值:$scope.formData.inputSubject = SOME_VALUE;或通过某些服务/常量获取它们: $scope.formData.otherinputSubject = myService.getDefaultValue();
标签: angularjs forms input hidden