Angular 2的ui路由器中,$rootScope.$on(';$stateChangeStart';,…)的等价物是什么?

Angular 2的ui路由器中,$rootScope.$on(';$stateChangeStart';,…)的等价物是什么?,angular,angular-ui-router,Angular,Angular Ui Router,我对Angular 1的ui路由器有经验,现在我想知道如何在ui-router-ng2中收听$stateChangeStart 请让我知道如何在Angular 2中完成以下Angular 1代码 $rootScope.$on('$stateChangeStart', function(event, next) {}); 例如,Nice Plunkr: transitionService.onStart({from: 'home', to: 'other'}, ()=>{ conso

我对Angular 1的ui路由器有经验,现在我想知道如何在ui-router-ng2中收听
$stateChangeStart

请让我知道如何在Angular 2中完成以下Angular 1代码

$rootScope.$on('$stateChangeStart', function(event, next) {});

例如,Nice Plunkr:

transitionService.onStart({from: 'home', to: 'other'}, ()=>{
   console.log("state changed");
})

在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”且下一状态为“other”时,回调才会调用)

**您还可以调用onSuccess、onError、onEnter、onFinish等

我希望这对你有帮助


祝你好运

您尝试过文档吗?关于转换服务的所有内容:关于在组件中添加转换挂钩的一个警告:它们不会自动清理,因此如果组件将使用
ngondestry
销毁,则必须显式清理它们。我的建议是不要在组件中添加转换挂钩。最好在服务中添加转换挂钩,因为构造函数只调用一次。