マスター/詳細ビューでルーティングに問題があります。私がルート/master
に行くなら、InfoComponent
はいくつかの一般的な情報を示すべきです。 /master/1
に行くと、DetailsComponent
にはid 1のアイテムのデータが表示されるはずです。どちらの場合も、MasterComponent
には選択したIDまたは何も表示されません。マスター/詳細の子ルートの変更を角2で登録する
これはかなりうまく動作します。しかし、問題は、私は私がそれを強調することができるようにMasterComponent
にOnInit
で選択:id
に加入したいということである。このような何か:
this.selectedId = this.route.params.map((params: Params) => params["id"])
しかし:id
子ルートparamですので、それは動作しません。 firstchildはInfoComponent
またはDetailsComponent
が表示されているかどうかに応じて別のルートになるため、this.route.firstChild
を使用することはできません。
MasterComponent
が2つの子コンポーネントの表示の間で変更されたときに、観察可能な(:id
の)変化が得られますか?
これは私のルーティングモジュールです:
@NgModule({
imports: [
RouterModule.forChild([
{
path: "master",
canActivate: [AuthenticationGuardService],
children: [
{
path: "",
component: MasterComponent,
children: [
{
path: "",
component: InfoComponent
},
{
path: ":id",
component: DetailsComponent
}
]
}
]
}
])
],
exports: [
RouterModule
]
})
export class MyRoutingModule { }
は、だから私は希望の何かのような何かを行うことです。
this.selectedId
はルートが
/master/1
場合、値
1
を持つ
Observable
ある
this.selectedId = this.route.params.map((params: Params) => params["id"])
ルートが/master
の場合はnull
の値を返します。
うん、 'firstChild'は実際には動作しません。なぜなら、アクティブな子コンポーネントのどれに応じて異なるのでしょうか。私は、 'MasterComponent'の'/master/1'から '/ master'にURLが変更されたときに何とか変更を購読できることを期待していました。だから、私は子コンポーネントに論理を含まないと本当にそれを行うことができないのですか?それはバカだ.../ – Joel
'firstChild'から実際にどのコンポーネントが追加されたかという情報を得ることができます。興味のないコンポーネントのパラメータ変更を無視します。 –
私は何を記述するためにプランナーを設定しますか平均:) – Joel