An angular directive for doing one-off custom validation.
Under the hood this directive uses the validator API introduced in angular 1.3. See NgModelController's $validators and $asyncValidators properties:
https://docs.angularjs.org/api/ng/type/ngModel.NgModelController
- Include
validate.json your page afterangular.js - Add
dbrans.validateas a dependency of your app.
<formname="myForm"><inputname="foo" ng-model="foo" dbrans-validate="{odd: isOdd}"><divng-messages="myForm.foo.$error"><divng-message="odd">You need to pick an odd number.</div></div></form>angular.module('yourModule').controller('MyController',function($scope){$scope.isOdd=function(x){returnx%2===1;};});<formname="myForm">
Choose a unique username: <inputname="username" ng-model="username" dbrans-validate-async="{unique: isUsernameUnique}"><divng-messages="myForm.username.$error"><divng-message="unique">Sorry, that username is taken.</div></div></form>angular.module('yourModule').controller('MyController',function($scope,$http,$q){$scope.isUsernameUnique=function(username){$http.get('/api/user/'+username).then(function(){return$q.reject();// 200 - user exists},function(){returntrue;// 404 - user does not exist});};});