【问题标题】:Angular2 router 3.0.0-alfa7. Can't navigate to routeAngular2 路由器 3.0.0-alfa7。无法导航到路线
【发布时间】:2016-10-29 03:30:34
【问题描述】:

Angular2 版本:rc3

路由器版本:3.0.0-alfa7

boot.ts:

import { provideRouter, RouterConfig } from '@angular/router';
import {AppComponent} from "./main/app.component"
import {UsersComponent, UserListComponent, UserEditComponent} from "./users/index"

export const routes: RouterConfig = [
    { path: "", redirectTo: "users", terminal: true },
    {
        path: "users",
        component: UsersComponent,
        children: [
            { path: "create", component: UserEditComponent },
            { path: "edit/:id", component: UserEditComponent },
            { path: "", component: UserListComponent }
        ]
    }
];

export const APP_ROUTER_PROVIDERS = [
    provideRouter(routes)
];

当我启动应用程序时,路由器重定向到 /users 并且 UserListComponent 工作正常。

我有两个问题:

  • UserListComponent 导航到 /users/edit/:id 只能通过 [routerLink] 指令(例如 [routerLink]="[ '编辑',17]")。但后来我尝试使用路由器本身从 UserListComponent 导航(例如 router.navigate(['edit', 17]))然后什么也没发生;
  • 无法从其子组件导航到 /users。我试过 [routerLink]="['/users']", router.navigate(['/users'])。需要注意的是 [routerLink]="['/users']" 渲染到一个有效的锚标签:'/a>

【问题讨论】:

标签: angular angular2-router angular2-router3


【解决方案1】:

如果导航相对路径,则需要传递relativeTo 参数:

this.router.navigate(['./edit', 17], {relativeTo: this.currentActivatedRoute});

另见https://github.com/angular/angular/issues/9476

【讨论】:

  • 谢谢,我会试试的。您如何看待从其子组件导航到 /users 的问题?
  • 对不起,我不知道。您可以检查来自stackoverflow.com/questions/38039294/… 的建议是否也适用于您的情况。
  • 好的,我更新到 alfa-8,现在可以导航到父路由。
猜你喜欢
  • 2018-06-08
  • 2016-10-23
  • 2017-01-08
  • 2016-11-14
  • 2017-02-26
  • 1970-01-01
  • 1970-01-01
  • 2017-05-07
  • 1970-01-01
相关资源
最近更新 更多