で「ターミナル」ルートchildren
、つまり「オプション」でルートを構成することは可能ですかchildren
。
詳細が最初に表示されず、詳細ビューを開いたときにリストが破棄されないルーティング可能なマスター/詳細ビューを作成しようとしています。
たとえば、 に移動してから/a
、 を破棄せずa
に に移動し/a/1
ます。
最初の試み:
const routes: RouterConfig = [
//...
{ path: 'a', component: AListComponent, children: [
{ path: ':id', component: ADetailsComponent }
]},
//...
];
... この構成では、次のエラーがスローされます。
EXCEPTION: Error: Uncaught (in promise): Error: Cannot match any routes: 'a'
2 回目の試行:
const routes: RouterConfig = [
//...
{ path: 'a', component: AListComponent },
{ path: 'a', component: AListComponent, children: [
{ path: ':id', component: ADetailsComponent }
]},
//...
];
... リスト コンポーネントは破棄され、再作成されます。つまり、ユーザー入力がある場合、値は失われます。
3 回目の試行- 「空の」コンポーネントを作成し、デフォルトでロードします。
const routes: RouterConfig = [
//...
{ path: 'a', component: AListComponent, children: [
{ path: '', component: EmptyComponent },
{ path: ':id', component: ADetailsComponent }
]},
//...
];
...動作しますが、回避策のように感じます。
より良い方法はありますか?