Когда класс добавляется к элементу, я хочу добавить к этому классу другой класс. Когда класс удаляется, я хочу удалить элемент. Я в основном сопоставляю некоторые классы начальной загрузки с некоторыми классами проверки формы angular, но я не могу понять, как уволить мой код, когда класс добавляется/удаляется из элемента (также убедившись, что не вызывает некоторого бесконечного цикла класса меняется).
Вот что я имею до сих пор для моей директивы:
.directive('mirrorValidationStates', ['$log', function($log) {
function link(scope,element,attrs) {
scope.$watch(element.hasClass('someClass'), function(val) {
var classMap = {
'popupOn': 'has-error',
'ng-valid': 'has-success'
};
for (var key in classMap) {
if (element.hasClass(key)) {
$log.info("setting class " + classMap[key]);
element.parent().addClass(classMap[key]);
} else {
$log.info("removing class " + classMap[key]);
element.parent().removeClass(classMap[key]);
}
}
});
}
return {
link: link
};
}]);
В принципе, когда popupOn
добавляется к элементу, я хочу добавить класс has-error
bootstrap в родительский элемент. Когда popupOn
удаляется, я хочу удалить has-error
.
Что мне не хватает, чтобы это произошло в Angular? Может быть, что-то с ng-классом и не использовать директиву?
Спасибо большое!