Ich habe eine Hauptkomponente, die einen Router-Ausgang enthält. In der Komponente, die in dem Router-Steckdose geladen wird packe ich den URL-Parameter wie folgt aus:Elternkomponenten werden leer Params from ActivatedRoute
ngOnInit(): void {
// _route is injected ActivatedRoute
this._route.params.subscribe((params: Params) => {
if(params['url']){
this.testUrl = params['url'].replace(new RegExp('\%2[fF]', 'g'), '/');
}
});
}
Dies funktioniert gut, aber wenn ich es auf meinem Top-Level-Komponente versuchen die params Objekt ist immer leer. Ich verstehe nicht, warum das verschachtelte Param-Objekt der Komponenten die Daten enthält und ich versuche genau darauf zuzugreifen. Es gibt keine Fehler, das Param-Objekt ist leer.
Warum erhält meine Elternkomponente nicht das richtige Params-Objekt von ActivatedRoute?
edit:
wie gewünscht volle Elternkomponente
import { OnInit, Component, Directive } from '@angular/core';
import { Router, ActivatedRoute, Params } from '@angular/router';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
})
export class AppComponent {
public testUrl: string;
constructor(private router: Router, private _route: ActivatedRoute) {
}
ngOnInit(): void{
this._route.queryParams.subscribe((params: Params) => {
console.log(params);
if (params['url']) {
this.testUrl = params['url'].replace(new RegExp('\%2[fF]', 'g'), '/');
alert(params['url']);
}
});
}
}
Router-Code für app.module.ts:
RouterModule.forRoot([
{ path: '', component: CheckMobileComponent },
{ path: '**', component: CheckMobileComponent }
]),
Router Code für verschachtelten Modul:
RouterModule.forChild([
{ path: 'report', component: MobileReportComponent }
Dort ist keine direkt angegebene Route für meine app.component, da sie von einem Selektor in index.html geladen wird.
teilen Code der Elternkomponente –
@Sid aktualisiert Frage – Guerrilla
Bitte fügen Sie Ihre Route Code zu –