我需要查看页面上的所有锚点。如果客户点击了我需要识别的任何链接,看看它是否会打开一个新的选项卡(target="_blank"
)或做其他事情。
在Angular中处理此问题的最佳解决方案是什么?在jQuery中,这相当容易,但我不知道如何在Angularjs中处理它。我尝试在不同级别上使用scope.$on('$locationChangeStart', ...)
,但它从未被触发。我现在正在尝试使用使其工作
scope.$watch(function () {
return angular.element('a');
}, function (value) {});
但这也不起作用。
有没有任何方法可以实现与我在使用$('a').live('click', ...)
的jquery中获得的行为相同的行为?
还要注意,它需要是通用的,所以最好它应该在一个指令中,该指令在足够高的级别上添加一次,以便监视所有元素(同样,就像在jQuery中一样)。是的,这是一个硬性要求,不可能进行讨论。
您应该创建一个名为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
})
}
}
}