2016-12-10 24 views
1

角度2のルーティングで問題が発生しましたが、私はたくさんのことを試みますが、まだエラーメッセージがあります。 私はこのURLを持っています:/ project /:projectId。プロジェクトページでは、ルータ・コンセントを得て、この2つのURLにアクセスすることができます。だから私の問題は私のURLが/project/:projectId/add-card上にあるときということですPROJECTID /アドオンカード角度2 - 子供のルート

: /プロジェクト/:PROJECTID/ /プロジェクトを/設定します。私はthis.router.navigate(['./', 'setting']); と私の設定ページにアクセスしようと、私はまだ持っている:

は、任意のルートを照合することはできません:「の設定」(...)

を私は本当にからどのようにこのへのアクセスを理解していませんコード。これは私の子のルートである

const PROJECT_ROUTES = [ 
    { 
     path: ':id', 
     CanActivate: [AuthGuard], 
     component: ProjectDetailComponent , 
     loadChildren: './../menu/menu.module#MenuModule', 
     resolve: { 
      project: ProjectResolver 
     } 
    }, 
    { 
     path: '', 
     CanActivate: [AuthGuard], 
     component: ProjectContainerComponent, 
     pathMatch: 'full' 
    } 
] 

この

は私の両親のルートである

const MENU_ROUTES = [ 
    { path: 'setting', component: MenuSettingComponent }, 
    { path: 'add-card', component: MenuAddCardComponent}, 
    { path: '', redirectTo: 'setting' }, 
]; 

と設定ページへの私のコード形式のスイッチ:あなたの助けのための

onOpenMenu() { 
    console.log('navigate to setting'); 
    this.router.navigate(['./', 'setting']); 
    this.menuService.menuEvent.emit(true); 
} 

感謝の

答えて

1

別の.を追加する必要があると思われます。それ以外の場合は、/project/:projectId/add-card/setting

に移動します。相対的なナビゲーションについては、現在のルートも渡す必要があります。

constructor(private route:ActivatedRoute){} 
this.router.navigate(['../', 'setting'], {relativeTo: this.route}); 
+0

ああ、それは完璧に動作し、それをwiht!ありがとう! :) –