假设我有两个成分,Component1
和Component2
。其中Component2
需要一些参数来呈现。
是否只能在Component2
内显示Component1
的内容。只需单击按钮即可触发这些参数?
例如,
假设我有GalleryComponent
和ArtsComponent
。
{ path: 'gallery', component: GalleryComponent },
{ path: 'arts',
children: [
{ path: '', component: ArtsComponent, data :{ name:"all" } },
{ path: 'author/:id', component: ArtsComponent, data :{ name:"author" }},
{ path: 'form/:id', component: ArtsComponent, data :{ name:"form" } },
]
}
目前,我可以按照URLS
的方式查看这两个信息,
localost:4200/gallery
localost:4200/arts
localost:4200/arts/author/1
localost:4200/art/form/1
我正在通过
进行导航[routerLink]="['/arts/form', '1']"
这会将我带到新页面,即localost:4200/art/form/1
,但是我不希望那样,我只想在我的URL
上捕获GalleryComponent
的内容,例如,
//gallery.component.html
<a [routerLink]="['/arts/form', '1']">Form1</a>
<a [routerLink]="['/arts/form', '2']">Form1</a>
<app-arts></app-arts>
答案 0 :(得分:0)
您可以将几乎任何数量的组件彼此嵌套,只要该组件具有<router-outlet></router-outlet>
即可在其中输出子路由的内容。 app.component
的工作方式相同。因此,您需要做的就是将router-outlet
放在galery.component.html
内,并在路由配置中将ArtsComponent
放在GaleryComponent
的子级数组中。之后,您还可以调整ArtsComponent
[
{
path: 'gallery',
component: GalleryComponent,
},
{
path: 'arts',
component: GalleryComponent,
children: [
{ path: '', component: ArtsComponent, data :{ name:"all" } },
{ path: 'author/:id', component: ArtsComponent, data :{ name:"author"}},
{ path: 'form/:id', component: ArtsComponent, data :{ name:"form" }},
]
},
]
----------------------------------
//gallery.component.html
<a [routerLink]="['/gallery/form', '1']">Form1</a>
<a [routerLink]="['/gallery']">All</a>
<a [routerLink]="['/gallery/author','1']">Author</a>
<router-outlet></router-outlet>
答案 1 :(得分:0)
要实现此目的,您需要向<router-outlet>
添加另一个gallery.component.html
,然后将艺术作品路线添加为{{1} }
答案 2 :(得分:0)
尝试一下。
export class Component1 {
}
在HTML中添加第二个组件:
<app-component2></app-component2>