Angular 5: Как получить параметр маршрутизации родительского компонента в дочернем компоненте? - PullRequest
0 голосов
/ 27 ноября 2018

Здесь add-new-folder.component, этот компонент является дочерним компонентом folder.component, когда я маршрутизирую add-new-folder.component из folder.component, в то время, когда я хочу folder.component параметр userid в его дочернем компоненте, я попробовал приведенный ниже код, но я получаюconsole NaN как получить параметр родительского компонента в дочернем компоненте, пожалуйста, помогите мне?

add-new-folder.component.ts

constructor(private route : ActivatedRoute,private router : Router){}  

ngOnInit() {     
  this.route.parent.params.subscribe(params => {
    const parentRouteId = +params['userid'];
    console.log(parentRouteId);
  });
}

folder.component.html

<mat-icon [routerLink]="['/addNewFolders/',userid]">folder</mat-icon>

app-routing.module.ts

const routes: Routes = [
 { path: 'folder/:userid', component : FolderComponent,
   children: [
     { path: 'addNewFolders/:userid', component : AddNewFolderComponent },
   ]},
];

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Добавьте приведенный ниже атрибут в маршрутную ссылку, чтобы сохранить параметры.

 <a [routerLink]="['/base/addNewFolders/',userid]" queryParamsHandling="preserve"></a>

Вам просто нужно сохранить свой queryParams, чтобы вы также передавали параметры дочерним компонентам

0 голосов
/ 27 ноября 2018

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

let parameterId : string=" ";
export function setParameterId(id) {
  parameterId = id;
}

export function getParameterId() {
  return parameterId;
}

до перехода к дочернему компоненту, сначала вызовите this.setParameterId(id);, а после перехода к дочернему компоненту получите этот идентификатор с помощьюзвонить this.getParameterId()

...