角度检测留下一条路线。

时间:2016-08-18 21:39:29

标签: javascript angularjs angular-ui-router

我正在使用Angular 1.5和ui-router。我想检测用户leaves路由的时间。我现在有类似的东西:

$scope.$on("$stateChangeSuccess", function () {
      if (!$scope.flag) {
        //...
        $scope.do_work(reason);
      }
    });

这不太有效,因为当用户导航到此路线时,$scope.flag设置为false并且此功能会错误地触发。当用户导航离开特定路线时是否有惯用的方法来触发功能,而不是当他们导航到某个路径时?

1 个答案:

答案 0 :(得分:2)

我会说ui-router使用$scope挂钩,您可以在单个州指定。但您无法访问其中的onExit

要处理它,我会说维护服务将拥有可共享的数据。从您所需状态的$stateProvider.state("contacts", { template: '<h1>Dummy Template</h1>', controller: 'myCotroller', onExit: function(sharableService){ //... do something sharableService variable... } }) 挂钩更改可共享数据。然后,您也可以访问控制器内的相同服务。

{{1}}