Как получить текст условной кнопки «назад» в зависимости от того, используется ли defaultHref? - PullRequest
0 голосов
/ 12 июля 2019

У меня есть кнопка для отображения текста, но только когда используется defaultHref. Есть ли способ обнаружить это?

<ion-back-button *ngIf="defaultHref" [defaultHref]="defaultHref" [text]="text" icon="ios-arrow-back" mode="md"></ion-back-button>

Если кнопка «Назад» отображается в результате другого роутера, ссылка на кнопку «Назад» переходит куда-то еще, но заданный мною текст все еще там. Есть ли способ сделать этот текст условным для ссылки, соответствующей defaultHref, которую я установил?

1 Ответ

1 голос
/ 12 июля 2019

Из какого-то исследования сам компонент не знает , может ли он вернуться, пока не попытается вернуться:

  private onClick = async (ev: Event) => {
    const nav = this.el.closest('ion-nav');
    ev.preventDefault();

    if (nav && await nav.canGoBack()) {
      return nav.pop({ skipIfBusy: true });
    }
    return openURL(this.defaultHref, ev, 'back');
  }

Это все еще возможно, хотя, потому что вы можете просто подражать этому и проверить, может ли приложение вернуться в логику, которую вы используете для установки текста.

page.html:

<ion-buttons slot="start">
  <ion-back-button defaultHref="/custom-back-button" [text]="getCustomText()"></ion-back-button>
</ion-buttons>

Page.ts:

  constructor(
    private ionRouterOutlet: IonRouterOutlet
  ) { }

  getCustomText():string {
    if(this.ionRouterOutlet.canGoBack()) {
      return "Can Go Back Text";
    } else {
      return "Can Only Go To Default";
    }
  }

Что показывает это при прямой навигации:

enter image description here

И это, когда у него есть история, чтобы вернуться к:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...