Я нашел эту директиву Angular онлайн, чтобы добавить кнопку щебета. Все это кажется звездным, но я не могу понять, что делает attrs.$observe.
Я просмотрел документы, но не могу видеть $observe где-либо.
Похоже, что директива добавляет href, который будет поступать с контроллера, чтобы кто-нибудь мог объяснить, что делает остальная часть кода?
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>
