Я пытаюсь создать директиву с двумя параметрами, классом и страницейYOffset. Я хотел бы проверить положение прокрутки моего элемента и добавить имя класса, если pageYOffset больше, чем число в attr. Почему-то я не могу вызвать изменения класса.Угловая директива прокрутки
HTML
<div scroll offset="1500" ng-class="{active : scrollClass}"></div>
Директива
app.directive('scroll', function($window) {
return {
scope: {
offset: "@offset"
},
link: function (scope, element, attr) {
angular.element($window).bind("scroll", function() {
if (this.pageYOffset >= scope.offset) {
scope.scrollClass = true;
}
scope.$apply();
});
}
}
});
мое предположение, потому что вы определяете отдельную область в вашей директиве. основной div использует родительскую область, поэтому переменная никогда не изменяется в родительской области, только в области директивы. – rcheuk