Как динамически go перейти на предыдущую страницу (ioni c 4)? - PullRequest
1 голос
/ 11 июля 2020

В настоящее время я переношу свой проект ioni c 3 на ioni c 5, в ioni c 3 мы используем this.navCtrl.getPrevious (). Name; чтобы получить имя предыдущей страницы, получив имя предыдущей страницы, я буду переходить на разные страницы на основе имени предыдущей страницы, не могли бы вы помочь мне, как мне получить имя предыдущей страницы в ioni c 4

1 Ответ

0 голосов
/ 11 июля 2020

Ioni c 4+ отошел от navCtrl и использует Angular Router.

Чтобы прочитать предыдущий URL (маршрут), вы можете сделать это через PreviousRouteService:

import { Injectable } from '@angular/core';
import { Router, RoutesRecognized } from '@angular/router';
import { filter, pairwise } from 'rxjs/operators';

@Injectable({
    providedIn: "root"
})
export class PreviousRouteService {

    private previousUrl: string;
    private currentUrl: string;

    constructor(private router: Router) {

        this.currentUrl = this.router.url;
        this.previousUrl = null;

        this.router.events
                    .pipe(filter((event: any) => event instanceof RoutesRecognized), pairwise())
                    .subscribe((events: RoutesRecognized[]) => {
                        this.previousUrl = events[0].urlAfterRedirects;
                        this.currentUrl = events[1].urlAfterRedirects;
                    });

    }

    public getPreviousUrl() {
        return this.previousUrl;
    }

};

The служба импортирует маршрутизатор и отслеживает изменения, чтобы любой компонент, которому требуется предыдущая информация об URL, мог импортировать эту службу и получить доступ к предыдущему маршруту:

constructor(
    private previousRouteService: PreviousRouteService
 ) {}

 const prevUrl = this.previousRouteService.getPreviousUrl();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...