Прокрутка окна AngularJS не обновляет область - PullRequest
0 голосов
/ 11 января 2019

Я потерял пару часов из-за этой проблемы, надеюсь, решение сэкономит кому-то время.

Проблема в Angular 1.x, при попытке обновить область действия на основе события прокрутки она вообще не обновляется!

var app = angular.module("sample", []); 

app.controller("myCtrl", function($scope, $window) {
    $window.onscroll = function () {
        console.info($window.scrollY);

        $scope.scrollY = $window.scrollY;
    };    
});

CodePen здесь

Обратите внимание, что событие запускается нормально, и значение scrollY отлично отображается на консоли. Даже в этом случае представление не отражает изменение объема. Это расстраивает. Если вы измените поле Имя, остальные свойства будут обновлены.

1 Ответ

0 голосов
/ 11 января 2019

Ответ прост, принудительно обновите область, используя:

$scope.$apply();

Раскомментируйте соответствующую строку в приведенном выше коде и посмотрите, как происходит волшебство.

Звучит просто, но добраться до этого было не так быстро.

Надеюсь, это кому-нибудь поможет.

...