angular在設定router時如果想讓他帶參數或不帶參數都可以,可以設成兩個路徑,但在加入路由後就變得有點不知道怎麼設定
假定我有個router a:
{ path: 'a', component: a}
{ path: 'a/:id', component: a}
他可以帶id或不帶id都會導向componenta,
但如果有子網路的問題:
{ path: 'a', , component: a, childern:[
{path: 'b', component: b},
{path: 'c', component: c}
]}
{ path: 'a/:id', component: a, childern:[
{path: 'b', component: b},
{path: 'c', component: c}
]}
變成說我可能要定義兩遍?有其他的解法或其他設計嗎?
下面這段不需要
{ path: 'a', , component: a, childern:[
{path: 'b', component: b},
{path: 'c', component: c}
]}
然後全部用使用有ID的PATH
在設定一個無ID的狀態
例如
path=a/-1/b
在a.component
裡面判斷-1
為無ID
然後頁面在呈現成無ID的頁面
我目前就是component有判斷a/-1/b
,之間的值,但我希望它連線a/b
時也連的到,所以才寫了兩種,但有childern的時候就麻煩了
Zaku
就是只要a/:id/b
就行了
當:id
= -1
時
走的就是你說上面的那種寫法
{ path: 'a', , component: a, childern:[
{path: 'b', component: b},
{path: 'c', component: c}
]}
所以只要保留下面這個就行
{ path: 'a/:id', , component: a, childern:[
{path: 'b', component: b},
{path: 'c', component: c}
]}
這樣連a/b的時候router無法判別?我的意思是說我希望他連a/b的後也可以連到,不用a/-1/b
Zaku
連到a/-1/b
=a/b
所以沒有:id
的Router可以不用寫了....
你都是同樣的組件
所以組件裡一定會有判斷是否有:id
吧...
這樣嗎...,晚點試試。是同樣的component,只是不知道router怎麼設。我ab中間其實不只一個參數,可能會是a/:c/:d/:e/:f/b,還是我用pathMatch: 'full'的差異
大大不work阿,無法匹配這樣的router,可否打個簡單案例
我的意思是我沒有ID的時候不會連結到a/-1/b,會連到a/b