AngularJS window 滚动不更新范围
AngularJS window scroll not updating scope
由于这个问题我浪费了几个小时,我希望这个解决方案能节省一些人的时间。
问题出在 Angular 1.x,尝试根据滚动事件更新 scope 时,根本没有更新!
var app = angular.module("sample", []);
app.controller("myCtrl", function($scope, $window) {
$window.onscroll = function () {
console.info($window.scrollY);
$scope.scrollY = $window.scrollY;
};
});
CodePen here
请注意,事件正常触发,scrollY值完美显示在控制台上。即使如此,视图也没有反映范围的变化。真令人沮丧。如果您更改名称字段,则其他属性也会更新。
答案很简单,强制更新范围使用:
$scope.$apply();
取消上面代码中相应行的注释,看看神奇的事情发生了。
这听起来很简单,但要做到这一点并不是那么快。
希望对大家有所帮助。
由于这个问题我浪费了几个小时,我希望这个解决方案能节省一些人的时间。
问题出在 Angular 1.x,尝试根据滚动事件更新 scope 时,根本没有更新!
var app = angular.module("sample", []);
app.controller("myCtrl", function($scope, $window) {
$window.onscroll = function () {
console.info($window.scrollY);
$scope.scrollY = $window.scrollY;
};
});
CodePen here
请注意,事件正常触发,scrollY值完美显示在控制台上。即使如此,视图也没有反映范围的变化。真令人沮丧。如果您更改名称字段,则其他属性也会更新。
答案很简单,强制更新范围使用:
$scope.$apply();
取消上面代码中相应行的注释,看看神奇的事情发生了。
这听起来很简单,但要做到这一点并不是那么快。
希望对大家有所帮助。