我正在創建一個遠程驗證指令,允許我檢查我的服務器,如果該字段被驗證。如何創建一個指令來遠程驗證表單?
到目前爲止,我有這樣的:
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