0

子モジュールに子モジュールを使用して別のページに1ページから

​const routes: Routes = [  
    { path: '', component: ProcComponent, 
     children:[{ 
      path: '/LoadProcResultsdata/:procResults', component: ProcResultsComponent, 
     }] 
    }  
]; 

App.Module.ts

​const routes: Routes = [ 
{ path: 'app', component: AppComponent }, 
{ path: 'home', component: HomeComponent },  
{ path: 'treeview', component: TreeViewComponent }, 
{path:'Proc', loadChildren:'app/proc/Proc.Module#ProcModule'} 

]をナビゲートします。

私のコード

this.router.navigate(['/LoadProcResultsdata/'],{ queryParams: { procResults:this.results } }); 

しかし、私は次のエラーを取得しています。

core.umd.js:3064例外:キャッチされていない(約束されています):エラー:いずれのルートにも一致しません。 URLセグメント: 'LoadProcResultsdata' エラー:いずれのルートにも一致できません。 URLセグメント:「LoadProcResultsdata」

答えて

2

問題のカップルがありますが、

パスからフロント/を削除し、

また、あなたは以下の使用できるようにあなたは、クエリのparamsはなく、ルートのparamsを使用する必要が
children:[{ 
      path: '/LoadProcResultsdata/:procResults', component: ProcResultsComponent, 
     }] 

this.router.navigate(['/LoadProcResultsdata', this.results]); 

私は結果のURLが

なり、 this.resultsは、いくつかのIDであると仮定しています
/LoadProcResultsdata/<id> 

続きを読むabourルートパルメータhere

更新:

あなたがそれを行うことではなく、ルートのparamsで、ちょうどqueryParamsで、:procResultsを削除し、

let extra: any = ['abc','xyz']; 

let navigationExtras: NavigationExtras = { 
    queryParams:extra 
}; 

this.router.navigate(['/LoadProcResultsdata'],navigationExtras); 

とnavigtedコンポーネントで、以下のようなコードを使用することができますが購読ActivatedRoute queryParams、

constructor(private route: ActivatedRoute) { 
    route.queryParams.subscribe(params => { 
     console.log(params); 
    }) 
} 

これをチェックするPlunker !!

別のPlunker with Lazy loaded module

これが役立ちますように!

+0

ありがとう4つの応答。 this.resultsは文字列のセットで、別のページを渡したいです。文字列や配列を別のページに転送するより良い方法がありますか? – Venu

+0

@Venu、確かにqueryparamsを使って配列を渡すことができます。私は私の答えを更新し、サンプルPlunker、Cheersも追加しました! –

+0

私はparamsなしで試しましたが、同じエラーを返しています。 – Venu