代码之家  ›  专栏  ›  技术社区  ›  huan feng

$locationChangeStart之前有任何事件吗?

  •  1
  • huan feng  · 技术社区  · 10 年前

    我想在加载每个页面之前重新初始化一个服务变量。 在某些情况下,$locationChange似乎无法满足此需求

    angular.module('xxx')
    ...
    .service('xxxsvc', [..., function(){
        var groups = {};
    }
    
    $rootScope.on('$locationChange', function(){
        groups = {}
    });
    }]);
    

    我在页面上使用了多个指令。使用此服务时,似乎没有在所有指令之前执行$locationChange。我想在初始化页面的任何部分之前重新初始化或清除变量。

    有人能帮忙吗?

    1 回复  |  直到 10 年前
        1
  •  1
  •   Ilya Chernomordik    10 年前

    据我所知 stateChangeStart 由于您甚至可以在操作过程中取消它,因此在此之前不应该发生任何其他事情。但我看到你用 '$locationChange' 而不是 '$stateChangeStart' ,也许这就是问题所在?

    你可以阅读关于 $stateChangeStart here .

    另一个可能的问题是,您是否验证了您的服务是否被调用?控制器初始化通常不会再次调用,除非您强制它。