Angularjs在指令中得到表单字段有效性

前端之家收集整理的这篇文章主要介绍了Angularjs在指令中得到表单字段有效性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望这不是一个重复的 – 很多类似的问题,但我找不到一个有效的答案。

我有一个角度指令,因此:

app.directive('emailInput',function(){
    return {
        restrict: 'E',templateUrl: 'template.html',link: function(scope,elem,attrs,ctrl){
            elem.bind('keyup',function(){
                // TODO - what?
            })
        }
    }
}

并在模板html中:

<input type="email" required ng-model="emailAddress" />

不知道表单的名称,在链接函数内,我想知道emailAddress的值。$ valid属性 – 我该如何得到这个?

您可以要求formController,这将允许您访问注册到表单的所有输入
app.directive('emailInput',function(){
  return {
      require: '^form',// We look for it on a parent,since it will be defined somewhere higher on the DOM.
      restrict: 'E',ctrl){
          elem.bind('keyup',function(){
              ctrl.emailAddress.$valid //check validity
          })
      }
  }
}

请记住,Angular会按照名称跟踪输入元素。所以你必须给你的输入一个name属性

<input type="email" required ng-model="emailAddress" name="emailAddress" />

我也建议可能通过指令属性传递所有这些。你可能不想硬编码字段名称。所以你可以只有一个具有有效性的属性

inputIsValid='formName.emailAddress.$valid'

并在您的指令中评估(或$ watch it)。

猜你在找的Angularjs相关文章