frHasError.js
817 Bytes
angular.module('fr.hasError', [])
.directive('frHasError', ['$compile', function ($compile) {
return {
restrict: 'A',
priority: 1000,
terminal: true,
compile: function (element, attrs) {
element.removeAttr('fr-has-error');
const onEvent = (attrs.onDirty !== undefined) ? '$dirty' : '$touched';
const formCtrl = attrs.frHasError.substr(0, attrs.frHasError.lastIndexOf('.'));
element.attr('ng-class',
"{ 'has-error': " + attrs.frHasError + '.$invalid && (' + attrs.frHasError + '.' + onEvent + ' || ' + formCtrl + '.$submitted ) }'
);
return {
post: function (scope, elem) {
$compile(elem)(scope);
},
};
},
};
}]);