CSS更改不会立即应用

CSS更改不会立即应用,css,angularjs,ionic-framework,Css,Angularjs,Ionic Framework,要降低头部,应改变颜色,但变化是看不到的,如果我只打开菜单,则可以看到变化 <ion-header-bar class="thediv" ng-class="{scrolling: isActive}"> <ion-nav-bar class="bar-clear " > </ion-nav-bar> </ion-header-bar> 和代码: if ($ionicScrollDelegate.

要降低头部,应改变颜色,但变化是看不到的,如果我只打开菜单,则可以看到变化

<ion-header-bar class="thediv" ng-class="{scrolling: isActive}">
     <ion-nav-bar class="bar-clear "  >         
     </ion-nav-bar>
     </ion-header-bar>
和代码:

if ($ionicScrollDelegate.$getByHandle('contentScroll').getScrollPosition().top > 100) {       
     $scope.isActive = true;
} else {
    $scope.isActive = false;
}
演示

我的假设是,当您影响
$scope.isActive
时,不会处理摘要循环

尝试将其包装成一个
$timeout
(不要忘记将
$timeout
添加为依赖项)


问题还不清楚。你能和我分享一把小提琴吗?嗯,这个主意很有趣,我不知道怎么修。如果我是你,我会试着弄清楚$watch、$digest和$apply是如何处理的。如果在开始滚动时它没有正确更新,则可能是一个问题。您还可以尝试在滚动开始时执行$broadcast事件,然后基于该事件应用类。只是一些想法,让我知道如果你得到它的工作!
if ($ionicScrollDelegate.$getByHandle('contentScroll').getScrollPosition().top > 100) {       
     $scope.isActive = true;
} else {
    $scope.isActive = false;
}
if ($ionicScrollDelegate.$getByHandle('contentScroll').getScrollPosition().top > 100) {       
  $timeout(function(){
     $scope.isActive = true;
  },0)
} else {
  $timeout(function(){
    $scope.isActive = false;
  },0)
}