Angular 2路由器全局状态更改事件
Angular 2 router global state change event
当状态更改/启动时,我们可以使用一个全局事件,而不是每个组件,这与组件生命周期挂钩不同?类似于UI路由器:
$rootScope.$on("$stateChangeStart", function() {})
这取决于您想要实现什么,但可以在顶级组件中注入Router
,并向其注入.subscribe()
以获得状态流。
我使用它来构建根据当前状态更改浏览器标题的功能。话虽如此,您可以将其视为Angular 1中的$stateChangeSuccess
和$stateChangeFailure
事件的等价物。
代码为:
constructor(router: Router) {
router.subscribe(successHandler, failureHandler);
}
还可以看看OnActivate,它也与这些概念有关。
我的ui路由器代码最终看起来像下面这样,以取代Angular2:的ng1$rootScope$stateChangeSuccess
import { Component } from '@angular/core';
import { TransitionService } from "ui-router-ng2";
@Component({selector: 'app-stage-tag',template: '...'})
class AppComponent {
constructor(public transitionService: TransitionService){
transitionService.onSuccess({to:'*'}, transition=>{
console.log('state', transition._targetState._definition)
console.log('params', transition._targetState._params)
})
}
}
相关文章:
- 事件和状态
- WinJs中的视图状态更改事件在哪里
- 当用户处于空闲状态时,如何激发事件
- 火狐浏览器不会在前进时触发流行状态事件
- Highcharts点击事件返回“;悬停”;state而不是“state”;选择“;状态
- jquery在不触发更改事件的情况下切换设置状态
- React在状态更改时丢弃排队的事件
- 如何在浏览器页面切换到我的网站选项卡时创建事件,如gmail中的聊天框状态更改
- 悬停状态指针事件:无Javascript回退
- 在触摸结束事件期间,Find元素手指处于打开状态
- 如何在AngularJS$rootScope事件侦听器中应用状态转换
- 使用ReactJS使用Redux的简单状态更新事件
- 如何检查更改事件的复选框状态
- React.js-通过事件处理程序更改所有者组件的状态
- 使用$.data()更改click事件的状态时出现问题
- CRM 2013 - 事件解决 - 检索新的状态原因
- 如何在ajax调用后保留toggleClass事件状态
- react.js中的生命周期事件状态和prevState
- Typescript + jQuery:使用事件状态的正确方法
- 当浏览器退出“加载”时触发的事件;状态