Я использую require: '^form'
в моей простой директиве.
Затем я пытаюсь использовать эту форму в ng-show, но, похоже, это не работает.
Примечание. Я не хочу передавать имя формы в качестве атрибута.
Может ли кто-нибудь увидеть, где я ошибаюсь? Я хочу, чтобы сообщение отображалось только в том случае, если форма недействительна.
angular.module('xxx').directive('errorWall', errorWall);
function errorWall() {
return {
restrict: 'E',
require: '^form',
scope: {},
link: (scope, elm, attrs, frm) => {
scope.formCtrl = frm;
},
template: '<div ng-show="formCtrl.$invalid">You have error messages.</div>'
};
}
Убедитесь, что вы разместили директиву внутри формы, по крайней мере, с одним вводом с директивой ng-model.
<form>
<input type="text" ng-model="name" required />
<error-wall></error-wall>
</form>
Здесь рабочий скрипт https://jsfiddle.net/3gv8nvL3/3/ с одной формой требует ввода.