Chapter 5: Working with AngularJS forms
HTML
<script src="https://code.angularjs.org/1.3.2/angular.min.js"></script>
<div ng-app="myApp">
<form novalidate name="myform">
<input type="number"
ensure-prime name="myinput"
ng-model="formdata.myinput"
required />
</form>
<div ng-show="myform.myinput.$invalid">
Input field must be a prime number
</div>
</div>
JavaScript
angular.module('myApp', [])
.directive('ensurePrime', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, ctrl) {
function isPrime(n) {
if (n<2) {
return false;
}
var m = Math.sqrt(n);
for (var i=2; i<=m; i++) {
if (n%i === 0) {
return false;
}
}
return true;
}
scope.$watch(attrs.ngModel, function(newval) {
t
if (isPrime(newval)) {
ctrl.$setValidity('prime', true);
}
else {
ctrl.$setValidity('prime', false);
}
});
}
};
});