【发布时间】:2014-03-22 16:39:17
【问题描述】:
我在网上找到了这个 Angular 指令来添加一个 twitter 分享按钮。这一切看起来都很顺利,但我无法弄清楚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>
【问题讨论】:
-
抱歉,我看的时候完全错过了