2017-01-26 14 views
1

私のアプリケーションでは、定義されたルートを持つ "documents-list"と "document-upload"の2つのコンポーネントがあります。名前付きアウトレットを持つ別のルートにリダイレクト

{ path: "documents", component: DocumentsComponent, pathMatch: 'full' }, 
{ canActivate: UploadRedirectionGuard], component: DocumentsComponent, path: "documents/upload" }, 

残念ながら、アナリストのリクエストとして、documents/upload?パラメータをdocuments?パラメータにリダイレクトする必要があります。以前はドキュメントのアップロード時にモーダルを開く必要があるかどうかを知るために、サービスの変数をリダイレクトして定義するだけでした。

モーダルを扱うために名前付き店舗に切り替えるようになったので、私はこれを単純化し、そのサービスを使用しないでください。これは現在のコードです

public canActivate(): boolean { 
    this.router.navigate(["documents", { outlets: { modal: "upload" }}], { preserveQueryParams: true }); 
    return true; 
} 

残念ながら、私にはエラーが発生します。

Error: Cannot match any routes. URL Segment: 'documents' 

ルート文書がルーターモジュールで正しく定義されているため、なぜ動作しないのか分かりません。

答えて

0

あなたが定義されたルートにエラーがあります。

{ path: "documents", component: DocumentsComponent, pathMatch: 'full' }, 
{ canActivate: UploadRedirectionGuard, component: DocumentsComponent, path: "documents/upload" } 

を私は{canActivate: UploadRedirectionGuard], ...(あなたのコードから]を削除

+0

実は私の実際のコードは 'canActivateです:[AuthenticationGuard、UploadRedirectionGuard]'また、パッシング単一のコンポーネントまたはコンポーネントの配列は動作を変更しません。 – Sakuto

関連する問題