Будучи довольно новым для Углового Я в настоящее время создаю приложение с использованием углового и Angular Material, пытаясь написать мою первую директиву. Я столкнулся с некоторыми проблемами.Угловая директива не работает после изменения маршрута
Что я хочу сделать: У вас есть карта на странице с панелью инструментов наверху. Как только панель инструментов прокручивается в верхней части экрана, она будет «прилипать». Чтобы добиться такого поведения, я написал простую директиву.
app.directive("sticky", function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
//"content" is the container in which my app scrolls.
var content = document.getElementById('content');
angular.element(content).bind("scroll", function() {
var cardOffset = element[0].parentElement.offsetTop;
var scrolled = content.scrollTop;
var cardHeight = element[0].parentElement.clientHeight;
var bottomOffset = cardOffset + cardHeight;
//Check if we are currently scrolling through this element.
if (scrolled >= cardOffset && scrolled <= bottomOffset) {
element[0].style.top = (scrolled - cardOffset) + 'px';
scope.shadow = true;
} else {
scope.shadow = false;
}
if (scrolled <= cardOffset) {
element[0].style.top = '0px';
}
});
}
}
});
Адрес plunker of that in action. Как вы можете заметить, plunker работает так же, как я описал выше.
Однако, когда я помещаю это в свое приложение, я получаю следующее странное поведение: при посещении представления, содержащего липкий элемент, указанный элемент не имеет липкого поведения. Мое первоначальное предположение было чем-то неправильным с $ routeProvider, но, как показывает плункер, оно работает с этим.
Я действительно потерял и искал идеи, которые я могу изучить, чтобы исправить мою проблему.
Скачивали код, как это. Приличное поведение работает как ожидается в Safari и Firefox. Какой браузер вы используете? – oKonyk
Извините, если я не был достаточно ясен в своем посте. Хотя он работает так, как предполагалось, в плунтере, я получаю проблемы, когда фактически использую его в своем приложении. Я просто застрял без идей, что посмотреть. –
У меня есть эта часть, я тестировал ее непосредственно в браузере (без использования plunker, я загрузил необработанные файлы) – oKonyk