我有一个包含许多输入字段的表单,这些字段由AngularJS验证。
如何只能通过验证来忽略其中一个?它仅用作用户的商品,用于输入值并向网格添加行(这是表单的一部分)。
<input type="text" ng-model="url" >
<button class="btn btn-primary btn-xs" ng-click="addUrl();">+</button>
在上面的代码中,用户在输入中输入一些文本,然后单击+按钮。问题是提交表单时AngularJS验证了输入,这不是我想要的。
我尝试在输入中添加ng-non-bindable。这有效,但后来我无法明确绑定'url'属性....
这是什么解决方法?
答案 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