我对Angular 1的ui-router有经验,现在我想知道如何在ui-router-ng2中监听$stateChangeStart
。
请告诉我如何在Angular 2中完成以下Angular 1代码。
$rootScope.$on('$stateChangeStart', function(event, next) {});
答案 0 :(得分:2)
好的Plunkr例如:
https://plnkr.co/edit/k8PgPKRNu0llT521p5R5?p=preview
在ui-router-ng2上,您拥有所有州生命周期的服务(TransitionService):
1)您需要在构造函数上注入服务:
import {TransitionService} from "ui-router-ng2";
constructor(private transitionService:TransitionService) {}
2)回调函数:
transitionService.onStart({}, ()=>{
console.log("state changed");
})
在第一个值上,您可以输入条件,例如:
transitionService.onStart({from: 'home', to: 'other'}, ()=>{
console.log("state changed");
})
(回调只会在当前状态为' home'以及下一个状态'其他')时调用
**你也可以调用onSuccess,onError,onEnter,onFinish等等......
我希望你觉得它很有帮助,
祝你好运!