Вы также можете просмотреть переменную в контроллере.
Этот код автоматически скрывает панель уведомлений после того, как какой-либо другой модуль отобразит сообщение обратной связи.
HTML:
<notification-bar
data-showbar='vm.notification.show'>
<p> {{ vm.notification.message }} </p>
</notification-bar>
ДИРЕКТИВА:
var directive = {
restrict: 'E',
replace: true,
transclude: true,
scope: {
showbar: '=showbar',
},
templateUrl: '/app/views/partials/notification.html',
controller: function ($scope, $element, $attrs) {
$scope.$watch('showbar', function (newValue, oldValue) {
//console.log('showbar changed:', newValue);
hide_element();
}, true);
function hide_element() {
$timeout(function() {
$scope.showbar = false;
}, 3000);
}
}
};
ДИРЕКТИВА ШАБЛОН:
<div class="notification-bar" data-ng-show="showbar"><div>
<div class="menucloud-notification-content"></div>
Мне просто нужна директива, ограниченная атрибутом, и когда я добавляю директиву любому произвольному элементу, она должна быть способна определить, когда изменились другие атрибуты этого произвольного элемента. В моем случае это «класс» – Agzam
, изменяющий код, который меняет класс, будет для меня каким-то неприемлемым решением, хотя, вероятно, это самая правильная вещь. Мне все же нужно как-то перехватить момент, когда он изменит класс – Agzam
Затем перейдите с '$ watch', который я опубликовал. Он даст то, что вам нужно. –