我需要在我的页面上观看所有锚点。如果客户点击了我需要识别此链接的任何链接,请查看它是否会打开新标签(target="_blank"
)或执行其他操作。
在Angular中处理此问题的最佳解决方案是什么?在jQuery中这很容易,但我不知道如何在Angularjs中处理它。我尝试在不同级别使用scope.$on('$locationChangeStart', ...)
,但它永远不会被触发。我现在正试图使用
scope.$watch(function () {
return angular.element('a');
}, function (value) {});
但这也行不通。
有没有办法让我在$('a').live('click', ...)
的jquery中获得相同的行为?
还要注意它必须是通用的,所以最好它应该在一个指令中,它在一个足够高的级别添加一次,以便它监视所有元素(再次,就像在jQuery中一样)。是的,这是一项艰难的要求,不可能进行讨论。
答案 0 :(得分:2)
您应该创建一个名为a
的新指令。这样,angular将为所有锚点执行它
angular.module('link', [])
.directive('a', function() {
return {
restrict: 'E'
link: function(scope, element, attrs) {
element.on('click', function() {
if (attrs.target)
//your logic
})
}
}
}