【问题标题】:validate input with name containing brackets in AngularJS在AngularJS中使用包含括号的名称验证输入
【发布时间】:2014-08-13 16:35:43
【问题描述】:

我有一个包含括号的名称的表单输入,例如:

<form name="my_form">  
    <input type="text" name="my_form[email]" ng-model="email" ng-class="'mycssclass': my_form.my_form[email].$invalid">
</form>

因此,问题在于,由于我的输入名称 (my_form[email]),Angular 没有应用该 css 类,这是在 Angular 中引用我的输入的正确表示法。

这是一个小插曲: http://plnkr.co/edit/t7PEilV9maNYGnVYnTDc?p=preview

【问题讨论】:

    标签: angularjs forms validation symfony ng-class


    【解决方案1】:

    使用包含括号的名称引用输入的方法是使用括号表示法,如下所示:

    my_form['my_form[email]'].$invalid
    

    【讨论】:

      【解决方案2】:

      您需要在输入中使用ng-model 属性。它将字段的内容与$scope 中的值绑定。您还需要将 Javascript 对象传递给 ng-class 指令。在您的示例中,它将是:

      <form name="my_form">  
          <input type="text" ng-model="my_form.email" ng-class="{'mycssclass': my_form.email.$invalid}">
      </form>
      

      不要犹豫,看看ng-model 和ng-class 指令文档中的示例。

      【讨论】:

      • 很抱歉我没有在示例中添加 ng-model 指令,但我正在使用它,这不是问题。我的问题是包含大括号的输入名称。
      • 你能提供一个问题吗?
      • 这是您的 plunkr 的更正版本:plnkr.co/edit/tz0Bmbt7HNmEOiFxXwgG?p=preview。基本上,您需要将输入的名称更改为email,并将error 类触发器更改为my_form.email.$invalid。
      • 显然,如果我更改输入的名称,它应该可以工作......但就我而言,我无法更改输入的名称。
      猜你喜欢
      • 2017-08-11
      • 1970-01-01
      • 2014-11-26
      • 2015-08-12
      • 2011-05-31
      • 2016-09-22
      • 1970-01-01
      • 2014-11-05
      相关资源
      最近更新 更多