angularjs:在表单验证期间忽略输入

时间:2013-11-19 15:13:20

标签: javascript angularjs

我有一个包含许多输入字段的表单,这些字段由AngularJS验证。

如何只能通过验证来忽略其中一个?它仅用作用户的商品,用于输入值并向网格添加行(这是表单的一部分)。

 <input type="text" ng-model="url" >
 <button class="btn btn-primary btn-xs" ng-click="addUrl();">+</button>

在上面的代码中,用户在输入中输入一些文本,然后单击+按钮。问题是提交表单时AngularJS验证了输入,这不是我想要的。

我尝试在输入中添加ng-non-bindable。这有效,但后来我无法明确绑定'url'属性....

这是什么解决方法?

1 个答案:

答案 0 :(得分:0)

您可以在指令链接函数中注入表单控制器,并从验证中删除输入:

app.directive('customInput', function(){
  return {
    template: '<input>',
    restrict : 'E',
    require : '^form',
    link: function(scope, elem, attrs, formCtrl) {
      var inputCtrl = elem.controller('ngModel');
      formCtrl.$removeControl(inputCtrl);
    }
  }
})

我在这里设置了一个plunkr:http://plnkr.co/edit/AR0Zk1ybQ7OvmHEGirVL?p=preview