对于Angular 2,ui-router中的$ rootScope。$ on(' $ stateChangeStart',..)相当于什么?

时间:2017-01-09 11:36:45

标签: angular angular-ui-router

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

请告诉我如何在Angular 2中完成以下Angular 1代码。

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

1 个答案:

答案 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等等......

我希望你觉得它很有帮助,

祝你好运!