0

Я пытаюсь пути к модулю ребенка с маршрутом Params, мой app.routes выглядитУгловой маршрутизатор интерпретирует маршрут как параметр?

import { Routes, RouterModule } from '@angular/router'; 

const appRoutes: Routes = [ 
    { path: 'cell', loadChildren: './cell/cell.module#CellModule', pathMatch: 'prefix'} 
]; 

export const appRoutingProviders: any[] = []; 
export const routing = RouterModule.forRoot(appRoutes); 

моего ребенок компонента (клетка) имеют следующие маршруты:

import { ModuleWithProviders } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 

import { CellComponent } from './cell.component'; 

const cellRoutes: Routes = [ 
    { path: ':id', component: CellComponent, pathMatch: 'full' } 
]; 

export const cellRouting: ModuleWithProviders = RouterModule.forChild(cellRoutes); 

и CellComponent выглядят следующим образом :

export class CellComponent implements OnInit { 
    @Input() 
    dep: string; 

    constructor(
    private route: ActivatedRoute) { } 

    ngOnInit() { 
    this.route.params.forEach((params: Params) => { 
     this.dep = params['id']; 
     console.log(this.dep); 
    }); 

    } 
} 

Я ожидаю, чтобы быть в состоянии назвать /cell/2 маршрут и получить 2 в м у консоли, однако, если я сделать этот вызов, я получаю сообщение об ошибке:

TypeError: Cannot read property 'length' of undefined

, который, как представляется, из-за использования неопределенного маршрута, и, если я просто позвонить /cell тогда мой компонент нагрузки штраф и печатает cell к консоль. Почему маршрутизатор интерпретирует маршрут как параметр?

ответ

0

Используйте ниже код, чтобы получить идентификатор:

import { ActivatedRoute, Router } from '@angular/router'; 
constructor(public route: ActivatedRoute, ...) { 
} 
ngOnInit() { 
    this.route 
     .params 
     .subscribe(params => { 
      this.id= params['id']; 
    }); 
} 
+0

Неа - это не поможет, я боюсь. Я уверен, что это проблема маршрутизации, поскольку компонент отлично работает в другом проекте (я реорганизую эту функциональность в новый модуль, что и вызвало проблему). –

Смежные вопросы