javascript – 在ui中执行某些操作之前,AngularJS范围不会更新,例如单击带有函数的对象

当视口小于或等于641px时,我试图将类添加到我的侧边栏,我必须观察该窗口的宽度

    $scope.$watch(function(){
       return $window.innerWidth;
    }, function(value) {
        if (value <= 641) {
            logger.info('!!!less than 641');
            vm.singleColumn = true;
        };
    });

它会在第一次加载时登录,但是当我调整大小时,我必须在它再次触发之前进行一些点击.例如.我调整了大小,然后点击了一个带有ng-click行为的项目,那是唯一一次,它再次登录.

我已经阅读了一些问题,这可能是由于$digest和$apply?

有人可以解释我的困惑.

解决方法:

您需要触发摘要周期,否则视图不会意识到值已更新.

$scope.$watch(function(){
   return $window.innerWidth;
}, function(value) {
    if (value <= 641) {
        logger.info('!!!less than 641');
        vm.singleColumn = true;
        $scope.$apply();
    };
});
上一篇:廖雪峰Java10加密与安全-3摘要算法-4BouncyCastle


下一篇:慢查询分析工具