订阅离子页面更改事件

时间:2017-03-09 12:20:09

标签: angular ionic2

在angular2中,我们可以订阅路由器事件,如下所示:

router.events.subscribe((event: RouterEvent) => { /* detects route/navigation change*/
 //some logic to show loading image
});

如何翻译上述代码以便在Ionic 2中使用?

1 个答案:

答案 0 :(得分:0)

我不确定您要实现的目标,但您可以尝试在NavController中获取app.components.ts的引用,然后订阅所需的事件,如下所示:< / p>

allEvents = Observable.merge(
                 this.navController.viewDidLoad, 
                 this.navController.viewWillEnter, 
                 this.navController.viewDidEnter, 
                 this.navController.viewWillLeave, 
                 this.navController.viewDidLeave, 
                 this.navController.viewWillUnload);

allEvents.subscribe((e) => {
    console.log(e);
});

请注意,为了获取NavController文件中的app.component.ts个实例,您需要执行以下操作:

@Component({
    templateUrl: 'app.html'
})
export class MyApp {
    @ViewChild(Nav) navCtrl: Nav;

    //...
}