I tried to much, but what i feel is practice make us perfect. It was tough for me to understand custom directive in AngularJs, i didn't found anywhere something cool like this which created myself. Given code snippet might be your favorite.
<html> <head> <title>Simple custom directive in angularJs with demo</title> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> </head> <body> <div ng-app="myapp"> <form name="myForm" ng-submit="doSomething()"> <input type="text" name="name" ng-model="username" customlength /> <span ng-show="myForm.name.$error.isvalidlength">length must be greater then 3. </span> <span ng-show="!myForm.name.$error.isvalidlength">Valid length.</span> <br/> <button type="submit" ng-disabled="myForm.$invalid">Submit</button> </form> </div> <script> var app = angular.module("myapp", []); //creating custom directive to check string length app.directive('customlength', function () { return { require: 'ngModel', // default AngularJS's own NgModelController for custom directive, we could use our own controller here link: function (scope, element, attrs, ctrl) { scope.$watch(function () { //element.on('keyup', function () { console.log(element.val()); // to check event is calling properly or not var match = false; if (element.val().length >= 3) { match = true; } ctrl.$setValidity('isvalidlength', match); }); } } }); </script> </body> </html>