Angular检测离开一个路由
Angular detect leaving a route.
我使用的是Angular 1.5和ui-router。我想检测用户leaves
何时路由。我现在有这样的东西:
$scope.$on("$stateChangeSuccess", function () {
if (!$scope.flag) {
//...
$scope.do_work(reason);
}
});
这并不能很好地工作,因为当用户导航到这条路由时,$scope.flag
被设置为false
,并且该功能不正确地触发。是否有一种习惯的方法可以在用户从某个特定的路径导航出去时触发函数,而不是在用户导航到该路径时?
我会说使用 onExit
钩子的ui-router
,你可以指定一个状态。但是你不能访问$scope
。
要解决这个问题,我建议维护具有可共享数据的服务。更改所需状态的onExit
钩子中的可共享数据。然后你也可以在你的控制器中访问相同的服务。
$stateProvider.state("contacts", {
template: '<h1>Dummy Template</h1>',
controller: 'myCotroller',
onExit: function(sharableService){
//... do something sharableService variable...
}
})
相关文章:
- 使用react router/react router redux将特定的redux操作绑定到一个路由
- 如何在Ember中转换到另一个路由时调用一个方法
- 如何停止Angular UI路由器将可选参数从一个路由传递到完全不同的路由
- 如何使用铁路由器用一个路由控制器渲染多个模板
- 仅更改一个路由参数
- 如何在一个路由中有多个 ajax 调用
- 如何检查 URL 是否仅包含一个路由参数
- 从另一个路由调用一个hapi路由
- 一个路由,两个有效的有效负载在Hapi.js与Joi
- 在异步还原操作成功时转换到另一个路由
- 为什么AngularJS的服务在从一个路由导航到另一个路由时没有定义?
- 我如何发送文本从一个路由(/client/1)到另一个路由(/client/2)使用ajax在rails
- 我无法从第一个"/"路由到模板.我怎么解决这个问题呢?
- 如何将代码从一个路由文件分离到多个,以及如何从这些分离的文件中调用函数
- Angular检测离开一个路由
- 当' mapHooks '失败时重定向到另一个路由
- Ember JS -在用belongsTo关系加载多个模型到一个路由时遇到问题
- 在一个路由文件中定义的Express-session在app.js中不可用
- 在ember.js的控制器中使用另一个路由模型
- 如何将两个字符串匹配到一个路由表达式