0

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は問題なく動作します。

2 つの問題があります。

  • UserListComponentから/users/edit/:idへのナビゲーションは、 [routerLink]ディレクティブ ([routerLink]="['edit', 17]" など)を介してのみ機能します。しかし、次に Router 自体を使用してUserListComponentからナビゲートしようとしました(たとえば、router.navigate(['edit', 17])) が、何も起こりません。
  • 子コンポーネントから/usersへのナビゲーションが機能しません。[routerLink]="['/users']", router.navigate(['/users']) を試しました。[routerLink]="['/users']"は有効なアンカー タグにレンダリングされることに注意してください: <'a href="http://localhost/users"></'/a>
4

1 に答える 1

1

相対パスをナビゲートする場合は、relativeToパラメーターを渡す必要があります。

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

https://github.com/angular/angular/issues/9476も参照してください。

于 2016-06-27T07:52:58.863 に答える