当一个类被添加到一个元素时,我想向该元素添加另一个类。当一个类被删除时,我想删除一个元素。我基本上是将一些引导类映射到一些角度表单验证类,但是我无法弄清楚当从一个元素中添加/删除一个类时如何激发我的代码(还要确保不会导致某些无限循环的类更改) 。在AngularJS指令中监视元素变化类
这里是我迄今为我的指令:
.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
引导类添加到父元素。当删除popupOn
时,我想删除has-error
。
我错过了什么让Angular发生这种情况?也许与ng-class的东西,而不是使用指令?
非常感谢!
谢谢!我不认为我昨天晚上阅读文档时完全理解了这个构造。非常感谢。 – mikew
使用$动画元素时要小心。至于角度1.5,这可能不会立即触发动画完成状态,而只是针对“添加”状态。 –
** $ ** scope。$ watch - 有些人复制并粘贴! – AhmadReza