Собственно, есть директива ng-email-valid, которая валидирует email и в зависимости от результата показывает ошибку, но в данном случае watch вообще не срабатывает при вводе. Есть аналогичная директива, у меня только там поле name и все работает, а здесь и ошибки не вижу и watch не отрабатывает :(
<input class="d-form__input-text" ng-model="email" ng-required="true" ng-focus="focusHandler($event)" ng-blur="blurHandler($event)" name="email" type="email">
<div class="d-form__error" ng-email-valid="orderingForm.email">Пожалуйста введите корректный email</div>
.directive('ngEmailValid', ['$parse', function($parse) {
return function(scope, element, attr) {
var EMAIL_REGEXP = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ + "",
model = scope.$eval(attr['ngEmailValid']);
scope.$watch(model.$name, function() {
model.$invalid && model.$dirty ? element.show() : element.hide();
});
}
}])