La directive angulaire attire. $ Observe

J'ai trouvé ce Angulaire de la Directive en ligne pour ajouter un bouton de partage twitter. Il semble straight forward, mais je ne peux pas savoir ce que l' attrs.$observe est en train de faire.

J'ai regardé dans la doc, mais ne peut pas voir $observe référencés.

La directive semble juste pour ajouter le href qui viendrait du contrôleur si quelqu'un peut expliquer ce que le reste du code est en train de faire?

module.directive('shareTwitter', ['$window', function($window) {

    return {
        restrict: 'A',
        link: function($scope, element, attrs) {

            $scope.share = function() {

                var href = 'https://twitter.com/share';

                $scope.url = attrs.shareUrl || $window.location.href;
                $scope.text = attrs.shareText || false;

                href += '?url=' + encodeURIComponent($scope.url);
                if($scope.text) {
                    href += '&text=' + encodeURIComponent($scope.text);
                }

                element.attr('href', href);
            }

            $scope.share();

            attrs.$observe('shareUrl', function() {
                $scope.share();
            });

            attrs.$observe('shareText', function() {
                $scope.share();
            });
        }
    }
}]);


<a href="" target="_blank" share-twitter share-url="[[shareTwitterUrl]]" share-text="[[shareTwitterText]]">Twitter</a>

source d'informationauteur ttmt