Angular2 Router 3.0 beta 1(通过 Routerlink 的子路由失败)

标签 angular angular2-routing

我从 Angular.io 中获取了一个路由示例作为新路由器示例。

Original Angular2 Routing Example

我尝试理解,然后对子路由做了一些更改。

1) 在此示例中,他们通过 this.router.navigate(['/crisis-center', Crisis.id]); 方法从 Crisis-List-items 导航到 Crisis Detail .

我想在每个列表项上使用路由器链接而不是 Click 事件(如下所示),[在 crisis.list.component 中进行的更改]

[routerLink]="./crisis-center/" + crisis.id 

我还 fork 了 plunker 并进行了更改。但现在危机中心列表尚未加载。 Changed Plunker here

任何人都可以提出问题所在吗?子路由在新路由器中不起作用还是这里的 routerlink 使用错误?

最佳答案

CrisisListComponentCrisisAdminComponent 的子路由,与 CrisisDetailComponent

相同
export const crisisCenterRoutes: RouterConfig = [
  {
    path: 'crisis-center',
    component: CrisisCenterComponent,
    children: [
      {
        path: 'admin',
        component: CrisisAdminComponent,
        canActivate: [AuthGuard]
      },
      {
        path: ':id',
        component: CrisisDetailComponent,
        canDeactivate: [CanDeactivateGuard]
      },
      {
        path: '',
        component: CrisisListComponent
      }
    ]
  }
];

如果您想导航到同级路由,您需要相对于父级或根级调用它。

其中一个到达路线

[routerLink]=["../crisis-center",   crisis.id]
[routerLink]=["/crisis-center",     crisis.id]
[routerLink]=["../crisis-center/" + crisis.id]
[routerLink]=["/crisis-center/"   + crisis.id]

关于Angular2 Router 3.0 beta 1(通过 Routerlink 的子路由失败),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38496933/

相关文章:

javascript - 如何选择 Angular 6中的所有复选框?

css - 无法为 Check this potential box model size issue 设置 stylelint 规则

css - 自动调整 HTML 表格列

angular - 如何在父组件Angular 2中获取事件子路由

Angular 2在模态窗口中获取路由器参数

angular - 以 Angular 6 将数据从对话框组件发送到其他组件

html - 从 ngx-datatable header 中删除多余的空白空间

Angular2 后备路线

javascript - 处理 Angular 2 中动态创建的组件的 @Input 和 @Output

angular - 在 Angular 2 中检索参数和查询参数的最佳实践