ionic 4.のapp.componentで現在のページインスタンスを取得しようとしています。
ionic 3私はこのようにすることができます
this.nav.getActive()。instance
私の場合、私はこの状況を解決するためにオブザーバブルを使用しました
これが私の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);
}
}
私のアプリコンポーネントで現在アクティブな状態を取得することに興味があるすべてのページで、このオブザーバブルをトリガーします
export class HomePage {
constructor(private currentPage:CurrentPageService) {
}
ionViewDidEnter(){
this.currentPage.setUrl();
}
そして最後に私のappcomponent
export class AppComponent {
urlParts;
constructor(private currentpage:CurrentPageService){
this.currentPage.urlParts.subscribe(url=>this.urlParts=url);
});
}
foo(){
if (!this.urlParts.includes('home')) {
//do something
}
}
}
私はこれを行い、それは私のために働きます:
ionViewWillEnter() {
console.log(this.router['routerState'].snapshot.url);
}
ルーターアウトレットを使用して現在のページを追跡できます
<router-outlet (activate)="componentName = $event"></router-outlet>
詳細については、ドキュメントを確認してください https://angular.io/api/router/RouterOutlet