我正在使用Angular 1.5和ui-router。我想检测用户leaves
路由的时间。我现在有类似的东西:
$scope.$on("$stateChangeSuccess", function () {
if (!$scope.flag) {
//...
$scope.do_work(reason);
}
});
这不太有效,因为当用户导航到此路线时,$scope.flag
设置为false
并且此功能会错误地触发。当用户导航离开特定路线时是否有惯用的方法来触发功能,而不是当他们导航到某个路径时?
答案 0 :(得分:2)
我会说ui-router
使用$scope
挂钩,您可以在单个州指定。但您无法访问其中的onExit
。
要处理它,我会说维护服务将拥有可共享的数据。从您所需状态的$stateProvider.state("contacts", {
template: '<h1>Dummy Template</h1>',
controller: 'myCotroller',
onExit: function(sharableService){
//... do something sharableService variable...
}
})
挂钩更改可共享数据。然后,您也可以访问控制器内的相同服务。
{{1}}