我正在尝试使用以下代码为浏览器窗口的innerWidth设置范围变量。在控制台中查看时可以使用,但是该函数不会更新$ scope变量。为什么?
angular.element($window).bind('resize', function () {
console.log('resize', $window.innerWidth); // I can see change here
$scope.window_width = $window.innnerWidth; // no change here
});
您正在使用Angular之外的jQlite绑定某些东西,因此您必须在$digest
此处手动调用一个循环,否则Angular不会知道有更改。
angular.element($window).bind('resize', function () {
console.log('resize', $window.innerWidth);
$scope.window_width = $window.innerWidth;
$scope.$evalAsync();
});
$scope.$evalAsync()
将调用摘要循环,从而在相同的js事件滴答内触发的机会更大$timeout
(此处有更多信息)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句