gpt4 book ai didi

angularjs - 为什么在页面加载时触发 $locationChangeStart?

转载 作者:行者123 更新时间:2023-12-04 15:43:26 25 4
gpt4 key购买 nike

最近我在生产中偶然发现了一个非常奇怪的代码,它似乎利用了在某些情况下 Angular 可能会触发 $locationChangeStart 的事实。初始页面加载时的事件。此外next参数值将等于 current值(value)。这对我来说似乎很奇怪。

我没有找到任何相关的文档,但这里是显示这种情况的 fiddle http://jsfiddle.net/tJSPt/327/

唯一的区别可能是在生产中我们使用手动 Angular bootstrap 。

任何人都可以解释或指出有关为什么在页面加载时触发该事件的可靠信息来源吗?这是我们必须期待的,还是只是当前 Angular 实现或我们使用它的方式的特殊性?

最佳答案

我最近经历过这种情况,但发生的原因是因为我正在使用 ui-routercontrollerAs句法。也许你也是?

我偶然发现了这个对我有帮助的链接:History should not be changed until after route resolvers have completed

我听了$locationChangeStart广播但它在我进入状态时而不是在兴奋时击中了断点。

我通过执行以下操作修复了我的:

  • 我听了$stateChangeStart反而。
  • 我不得不移动上面的代码 var vm = this;

  • 这是我的代码如下:
    // ...     
    $scope.$on('$stateChangeStart', function (event) {
    if (vm.myForm!= null && vm.myForm.$dirty) {
    if (!confirm("Are you sure you want to leave this page?")) {
    event.preventDefault();
    }
    }
    });

    var vm = this;
    // vm.xxx = xxxx; .etc ...

    关于angularjs - 为什么在页面加载时触发 $locationChangeStart?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28571857/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com