如何在AngularJS中点击与相同网址的链接时捕获事件?

时间:2015-04-30 08:57:43

标签: javascript angularjs

我有2个链接:

<a href="#link1">First</a>
<a href="#link2">Second</a>

和2个控制器:

app.controller('firstCtrl', function($scope) {
    $scope.$on('$locationChangeStart', function (event, nextPage, currentPage) {
        alert("ok");
}

app.controller('secondCtrl', function() {}

当我从第二个链接转到第一个链接时,我看到警报。如果我留在第一个链接(= firstCtrl)并再次点击第一个链接,如何添加事件?

注意:我想获得新旧网址

1 个答案:

答案 0 :(得分:1)

如果您只想在每次单击第一个链接时触发警报,则可能需要使用ng-click属性而不是$on('$locationChangeStart')事件侦听器,只有在URL路径更改时才会触发:

<强> HTML

<div ng-controller="firstCtrl">
    <a ng-click="link1()">First</a>
</div>
<div ng-controller="secondCtrl">
    <a ng-click="link2()">Second</a>
</div>

<强> JS

app.controller('firstCtrl', function($scope) {
    $scope.link1 = function() {
        alert("ok");
    }
});

app.controller('secondCtrl', function() {...});

实际上,对于这种情况,最好更改指向按钮的链接,以便用户希望这些元素保留一些本地操作而不是新页面(部分)。