使用angular观察页面上的所有锚点



我需要查看页面上的所有锚点。如果客户点击了我需要识别的任何链接,看看它是否会打开一个新的选项卡(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
          })
        }
      }
    }

最新更新