質問1: コンポーネントのoninit関数は、router.data.subscribeを使用してデータと親データを取得します。angular2ルーターのデータは子に渡されますが、lazyloadの子は渡されません
なぜ親データを取得できますか?
ルーターのドキュメントに情報がありません。 angular2 router
質問2: なぜルートの親データを取得できないのですか? {PAGETITLE: 'youare'、テスト:123213213}、
IはCrisisListComponentでデータを得ることができないAPP-router.module.tsでIは
データを定義しました。
アプリ-router.module.ts
const routes: Routes = [
{path: '', redirectTo: 'login', pathMatch: 'full'},
{path: 'login', component: LoginPage},
{
path: ':id',
component: MainLayoutComponent,
data: {pageTitle: 'youare', test:123213213},
children: [
{
path: 'personalcenter',
loadChildren: 'app/personalcenter/personal-center.module#PersonalCenterModule',
data: {pageTitle: 'personalcenter'}
},
{
path: 'crisis-center',
loadChildren: 'app/crisis-center/crisis-center.module#CrisisCenterModule',
data: { preload: true }
},
]
危機-センター-routing.module.ts
const crisisCenterRoutes: Routes = [
{
path: '',
component: CrisisCenterComponent,
data:{you:"are"},
children: [
{
path: '',
component: CrisisListComponent,
children: [
{
path: ':id',
component: CrisisDetailComponent,
canDeactivate: [CanDeactivateGuard],
resolve: {
crisis: CrisisDetailResolver
}
},
{
path: '',
component: CrisisCenterHomeComponent
}
]
}
]
}
];
危機list.component.ts
export class CrisisListComponent implements OnInit {
constructor(
private service: CrisisService,
private route: ActivatedRoute,
private router: Router
) {}
ngOnInit() {
this.route.data.subscribe(data=>{
console.log("asdfsadfsadf"+JSON.stringify(data));
});
}
}
でCrisisListComponent、印刷ログ: "asdfsadfsadf {" preload ":true、" you ":" are "}"
優れたexplantion!ありがとうございました。 – bignewyork