ルート パラメータを使用して子モジュールにルーティングしようとしています。私の 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: 未定義のプロパティ '長さ' を読み取ることができません
これは、未定義のルートを使用しているためと思われます。呼び出すだけで/cell
、コンポーネントが正常にロードcell
され、コンソールに出力されます。ルーターがルートをパラメーターとして解釈するのはなぜですか?