Ich fand diese Winkeldirektive online, um einen Twitter-Share-Button hinzuzufügen. Es scheint alles nach vorne zu gehen, aber ich kann nicht herausfinden, was die attrs.$observe
tatsächlich macht.
Ich habe in der Dokumentation gesucht, aber nirgends $observe
verwiesen.
Die Richtlinie scheint nur die href
hinzuzufügen, die von der Steuerung kommen würde, damit jeder erklären kann, was der Rest des Codes tut?
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>
Hier sind die docs: http://docs.angularjs.org/api/ng/type/$compile.directive.Attributes –
Leider verpasste ich, dass vollständig, als ich sah – ttmt