web-dev-qa-db-fra.com

comment obtenir la page actuelle de app.component en ionic 4?

j'essaie d'obtenir l'instance de page actuelle dans app.component en ionic 4.

en ionic 3 je peux le faire comme ça

this.nav.getActive (). instance

9
tanveer ahmad dar

dans mon cas, j'ai utilisé un observable pour résoudre cette situation

voici mon service url

@Injectable({
  providedIn: 'root'
})
export class CurrentPageService {
  private $urlParts:BehaviorSubject<any>;
  private url;
  constructor(private router:Router) { 
    this.$urlParts = new BehaviorSubject(null);
  }
  get urlParts(){
    return this.$urlParts.asObservable();
  }
  setUrl(){
    this.url=this.router.url;
    let parts = this.url.split('/');
    return this.$urlParts.next(parts);
  }
}

et toute page qui m'intéresse d'obtenir son état actuellement actif dans mon composant d'application, je déclenche cette observable

export class HomePage {
  constructor(private currentPage:CurrentPageService) {

  }
ionViewDidEnter(){
  this.currentPage.setUrl();
}

et enfin dans mon composant

export class AppComponent {
urlParts;
constructor(private currentpage:CurrentPageService){
      this.currentPage.urlParts.subscribe(url=>this.urlParts=url);
    });
}
foo(){
        if (!this.urlParts.includes('home')) {
          //do something
        }
}

}
0
Ahmed Elkemary

J'ai fait celui-ci et cela fonctionne pour moi:

ionViewWillEnter() {  
   console.log(this.router['routerState'].snapshot.url);
}
0
ayoub boumzebra

vous pouvez suivre la page actuelle en utilisant le routeroutlet

<router-outlet (activate)="componentName = $event"></router-outlet>

consultez la documentation pour plus d'informations https://angular.io/api/router/RouterOutlet

0
has19