angular – registerBackButtonAction,Ionic2,用于不同的页面

前端之家收集整理的这篇文章主要介绍了angular – registerBackButtonAction,Ionic2,用于不同的页面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个Ionic2应用程序.我对registerBackButtonAction功能感到困惑.

我在一个页面上做了这个(比如pageA).它按预期工作.

this.platform.registerBackButtonAction(() => {
     console.log("back presed");
    this.abortDownloadAndExit();
    });

现在我想在其他页面(例如PageB)上对registerBackButtonAction做一些其他操作.但Ionic正在从pageA采取行动

如何在不同页面注册不同的作品.

正如您在 Ionic docs中看到的,registerBackButtonAction返回一个函数

A function that,when called,will unregister its back button action. So you can use that function to restore the default behavior when leaving the page,like this:

import { Component} from '@angular/core';

@Component({
    selector: 'page-home',templateUrl: 'home.html'
})
export class HomePage {

    // Property used to store the callback of the event handler to unsubscribe to it when leaving this page
    public unregisterBackButtonAction: any;

    constructor(...) { ... }

    ionViewDidEnter() {
        this.initializeBackButtonCustomHandler();
    }

    ionViewWillLeave() {
        // Unregister the custom back button action for this page
        this.unregisterBackButtonAction && this.unregisterBackButtonAction();
    }

    public initializeBackButtonCustomHandler(): void {
        this.unregisterBackButtonAction = this.platform.registerBackButtonAction(() => {
            this.customHandleBackButton();
        },10);
    }

    private customHandleBackButton(): void {
        // do what you need to do here ...
    }
}

正如您所看到的,关键是存储registerBackButtonAction方法的回调并在以后离开页面时使用它(或者当您想要恢复默认行为时):

this.unregisterBackButtonAction = this.platform.registerBackButtonAction(() => {
    this.customHandleBackButton();
},10);
原文链接:https://www.f2er.com/angularjs/140908.html

猜你在找的Angularjs相关文章