Pourquoi dois-je appeler $ scope. $ Digest () ici?

J'ai créé une directive pour afficher les info-bulles:

app.directive('tooltip',function(){
    return{
        restrict: 'A',
        link: function(scope,element,attr){
            element.bind('mouseenter',function(e){

                scope.setStyle(e);

            });
        }
    }
});

Le correspondant setStyle() fonction:

$scope.setStyle = function(e){
    $scope.style = {
        position: 'absolute',
        //some other styles
    };

    $scope.$digest();
};

$scope.style est appliqué à cette:

<span ng-style="style">I am a tooltip</span>

qui fait partie de mon point de vue, géré par le contrôleur qui possède $scope.style

Pourquoi dois-je appeler $digest() afin d'appliquer les modifications à $scope.stylequi a été déclaré et initialisé plus tôt?

source d'informationauteur user2422960