当视口(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();
};
});
关于javascript - AngularJS 范围直到在 ui 中执行某些操作后才会更新,比如单击具有函数的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30724822/