gpt4 book ai didi

javascript - Angular2子组件控制父组件的路由

转载 作者:搜寻专家 更新时间:2023-10-30 21:53:28 26 4
gpt4 key购买 nike

我有一个主要的父组件,它包含一个内置的顶部导航、一个单独的侧边栏导航组件和一个包含 <router-outlet> 的主要内容 div。为主要成分。我试图弄清楚如何在子导航组件中设置链接以更改父主要组件中的路由器导出。

```

Main Component
@Component({
selector: 'app',
templateUrl: 'mainComponent.html',
encapsulation: ViewEncapsulation.None,
directives: [ROUTER_DIRECTIVES,ChildSidenav],
})
@RouteConfig([
{ path: '/', component: HomeCmp, as: 'Home' }, //for top nav
{ path: '/about', component: AboutCmp, as: 'About' }, //for top nav
{ path: '/user', component: UserCmp, as: 'User'}, //for top nav
{ path: '/data/...', component: SidenavBasicUsage, as: 'Data'}, //link in child component
{ path: '/dates', component: SelectDatesComponent, as: 'Dates'}, //link in child component
{ path: '/edit/paths', component: EditPathsComponent, as: 'EditPaths'}, //link in child component
{ path: '/edit/filters', component: EditFiltersComponent, as: 'EditFilters'}, //link in child component
])
export class AppCmp {}

Child Component
@Component({
selector: 'left-control',
templateUrl: 'sidebar.component.html',
moduleId: module.id,
directives: [ROUTER_DIRECTIVES],
})
@RouteConfig([
{path: '/',name: 'Data',component: SelectDataComponent,useAsDefault: true},
{path: '/dates',name: 'Dates',component: SelectDatesComponent},
{path: '/edit/paths',name: 'EditPaths',component: EditPathsComponent},
{path: '/edit/filters',name: 'EditFilters',component: EditFiltersComponent}
])
export class SideNavComponent{}

```

最佳答案

我还没有尝试过所有这些方法,但我认为它们应该有效:

import {Router} from 'angular2/router'

...

constructor(private router:Router) {}

someMethod() {
this.router.parent.navigate(['About']);
this.router.navigate(['/About']);
this.router.navigate(['../About']);
}

使用 [routerLink]="..." 它的工作原理相同(第一个示例除外)

关于javascript - Angular2子组件控制父组件的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36418467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com