我试图在视口(viewport)小于或等于641px时将类添加到侧边栏,并且在这种情况下,我必须注意窗口的宽度
$scope.$watch(function(){
return $window.innerWidth;
}, function(value) {
if (value <= 641) {
logger.info('!!!less than 641');
vm.singleColumn = true;
};
});
它会在首次加载时记录,但是当我调整大小时,我必须先单击一下,然后才能再次触发。例如。我调整了大小,然后单击了具有ng-click行为的项目,这是唯一的一次,它将再次记录。
我已经阅读了一些问题,可能是因为$ digest和$ apply?
有人可以照亮我的困惑。
最佳答案
您需要触发摘要周期,否则 View 不会意识到该值已更新。
$scope.$watch(function(){
return $window.innerWidth;
}, function(value) {
if (value <= 641) {
logger.info('!!!less than 641');
vm.singleColumn = true;
$scope.$apply();
};
});