У меня есть директива, которая добавляет «фиксированный» класс по:
ng-class='{ "fixed": fixed }'
Эта директива имеет следующую функцию:
angular.element($window)
.on('scroll', function() {
if (this.pageYOffset >= 480) {
if (!scope.fixed) {
scope.fixed = true;
scope.$apply();
}
} else {
if (scope.fixed) {
scope.fixed = false;
scope.$apply();
}
}
});
Мои вопрос в том, я должен применить scope.$apply()
, как это, так что это срабатывает только когда мои изменения переменных, или это нормально, просто написать:
angular.element($window)
.on('scroll', function() {
if (this.pageYOffset >= 480) {
scope.fixed = true;
} else {
scope.fixed = false;
}
scope.$apply();
});
Может быть, есть использование scope.$watch
, о котором я не знаю?
Я знаю, что мне нужно запускать область действия. $ Apply, но я спрашиваю, какой способ ее запуска является предпочтительным? – Idefixx
@Idefixx взглянуть на обновленный ответ .. он должен работать .. :) –