Я создаю угловую директиву evoEventMirror, целью которой является прикрепить событие jquery к вставленному элементу и применить указанный стиль css к «корневому» элементу. Смотрите пример ниже:Угловая директива parsed attr двусторонняя привязка
<div id="#mydiv" evo-event-mirror target="#otherdiv" event="transitionEnd" action="hideMenu == true ? {'border':'1px solid blue'} : {'border':'1px solid red'}">
<!--...-->
</div>
В этом случае #otherdiv будет связывать transitionEnd событие и применить стиль границы (действия) в #mydiv, когда событие.
Теперь проблема заключается в том, что я не могу создать изолированную область видимости, поэтому я не могу получить двойные связывающие переменные. Я попытался использовать атрибуты элемента в качестве источника ввода, но я не могу перехватить какие-либо изменения, если изменяется переменная «hidemenu».
evoDirectives.directive('evoEventMirror', ['$parse',function ($parse) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var test = $parse(attrs.action)(scope);
scope.$watch(test, function (newValue) {
console.log('update');
});
//apply some style..
target.bind('transitionend webkitTransitionEnd oTransitionEnd otransitionend', function() {
var css = angular.element(element).attr('style');
if (css == null) css = style;
else css += style;
element.attr('style', css);
});
}
}
}]);
Я не могу создать переменную области видимости, к сожалению. Цель моей директивы заключается в присоединении к любому элементу, поэтому я не могу быть уверен, что другой элемент уже имеет изолированную область. – Luxor001