我正在创建一个远程验证指令,允许我检查我的服务器,如果该字段被验证。如何创建一个指令来远程验证表单?
到目前为止,我有这样的:
angular.module('Form').directive('remoteFieldValidation', function (Query) {
return {
restrict: 'A',
scope: {
fieldValue: '=ngModel'
},
link: function (scope, element, attr) {
element.parent().addClass('has-feedback');
element.focusout(function (value) {
var value = scope.fieldValue;
var checker = attr.remoteFieldValidation;
if (value && checker) {
element.parent().append('<span class="form-control-feedback fa fa-spinner fa-spin" style="line-height: 35px"></span>');
Query.api2({
method: 'GET',
route: 'validateField',
params: {
value: value,
checker: checker
}
}).then(function (result) {
})
}
else {
console.log('Missing checker or value');
}
})
}
}
});
过关查询是我自己的API服务基本上它控制$http requests
。
现在,当我将此属性指令添加到输入字段时,我想确保一旦它开始验证,就会将表单设置为无效。
但是我不太清楚如何从这个指令到达窗体。
有谁知道我可能会这样做,以防止用户在我的远程验证检查之前提交表单吗?
您可以了解如何在这里实现异步验证:http://jaysoo.ca/2014/10/14/async-form-errors-and-messages-in- angularjs/ – Icycool