AngularJS element.bind('resize')不更新$ scope变量

最惠国待遇

我正在尝试使用以下代码为浏览器窗口的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
});
马丁·韦尔克(Martijn Welker)

您正在使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章