Work in Progress
This page is currently being revised. It might be incomplete or contain inaccuracies.
Description
Use asynchronous validator if the validation can not be computed
immediately, but is provided through a callback. The widget
automatically shows a spinning indicator while the validity of
the widget is computed. This validator caches the result.
Usage
In HTML Template Binding
<input type="text" ng:validate="asynchronous:validate[:update]"/>
In JavaScript
angular.validator.asynchronous(value, validate[, update])
Parameters
Example
<script>
function MyCntl(){
this.myValidator = function (inputToValidate, validationDone) {
setTimeout(function(){
validationDone(inputToValidate.length % 2);
}, 500);
}
}
</script>
This input is validated asynchronously:
<div ng:controller="MyCntl">
<input name="text" ng:validate="asynchronous:myValidator">
</div>
it('should change color in delayed way', function(){
var textBox = element('.doc-example :input');
expect(textBox.attr('className')).not().toMatch(/ng-input-indicator-wait/);
expect(textBox.attr('className')).not().toMatch(/ng-validation-error/);
input('text').enter('X');
expect(textBox.attr('className')).toMatch(/ng-input-indicator-wait/);
pause(.6);
expect(textBox.attr('className')).not().toMatch(/ng-input-indicator-wait/);
expect(textBox.attr('className')).toMatch(/ng-validation-error/);
});