$ locationChangeStart事件触发太晚了

时间:2015-08-17 22:37:30

标签: javascript angularjs

我有下一个问题。

我有<a>元素的不同行为。我有一个处理2个事件的控制器:

$scope.$on("$destroy", function () {
    console.log("$destroy");
});

$scope.$on("$locationChangeStart", function () {
    console.log("$locationChangeStart");
});

有时首先触发 $ locationChangeStart 事件,但有时会先触发 $ destroy 事件。

我需要阻止更改页面,因此我需要首先触发 $ locationChangeStart

请有人有任何想法,为什么不同的<a>会有不同的事件顺序?

UPD 我在页面的不同部分使用相同的<a>元素

<a href="#/overview">test</a>

1 个答案:

答案 0 :(得分:1)

如果您想要阻止更改页面,那么首先启动哪一页并不重要。

$ locationChangeStart 中添加事件对象:

$scope.$on("$locationChangeStart", function (event) {
    event.preventDefault(); // will prevent the location change
});