My assumption is that the digest loop is not processed when you $scope.isActive .
Try wrapping it in $timeout (don't forget to add $timeout as a dependency)
if ($ionicScrollDelegate.$getByHandle('contentScroll').getScrollPosition().top > 100) { $timeout(function(){ $scope.isActive = true; },0) } else { $timeout(function(){ $scope.isActive = false; },0) }
source share