【问题标题】:Bind hidden input value to ng-init将隐藏的输入值绑定到 ng-init
【发布时间】: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


【解决方案1】:

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

所以这只是意味着:

ng-init="formData.inputSubject = pprice"

应该变成:

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

【讨论】:

    猜你喜欢
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 2023-03-22
    • 1970-01-01
    • 2020-09-30
    • 2018-03-08
    • 2014-11-08
    相关资源
    最近更新 更多