2016-09-14 18 views
0

オプションのパラメータでルートを呼び出そうとしています。場合どのルートにも一致しません:クエリパラメータで

をしかし、それは動作します; 'ID = myIdValue BO /歴史/詳細':任意のルートを照合することはできません:私はエラー

this.router.navigate(['./details', {id: myVarID}], { relativeTo: this.route }); 

それを呼び出す方法

マイルータ

const appRoutes: Routes = [ 

    { path: '', redirectTo: 'bo', pathMatch: 'full' }, 
    { path: 'login', component: LoginComponent }, 
    { path: 'bo', component: LayoutComponent, 
     children: [ 
      { path: '' , redirectTo: 'history', pathMatch: 'full'}, 
      { path: 'history', component: HistoryComponent } , 
      { path: 'history/details:id', component: DetailsComponent } 

     ] 
    },  
]; 

私はスラッシュをルータに定義し、手動でURLに挿入して呼び出す:

{ path: 'history/details/:id', component: DetailsComponent } 

「;」を追加しても、ルータの '/'の代わりに動作しません。 router.navigate機能を使ってルートに電話したいと思います!私が大きな混乱を作ったと思われるように

答えて

0
{ path: 'history/details:id', component: DetailsComponent } 

の変化を、

{ path: 'history/details/:id', component: DetailsComponent } //<----need to put router param after slash 

などを呼び出し、

this.router.navigate(['/details', {id: myVarID}] 
+0

:ID = myVarIDContents

と詳細コンポーネント内私は、クエリのparamsを取得することができ、作成されたルートは/ BO /歴史/詳細になります!それはまだ動作しません、エラーは同じです。私は手動でそれをスラッシュで挿入する場合、私はルートを呼び出すことができますが、関数を呼び出す ';' –

0

よし、。

私はクエリパラメータでルートにアクセスすることを望んでいたが、スラッシュのない、ので、解決策は以下のとおりです。

ルート:

{ path: 'history/details', component: DetailsComponent } 

コール:

this.router.navigate(['details', {id: myVarID}], { relativeTo: this.route }); 

/:idはありませんここでは、照会パラメーターの前にスラッシュを付けることはできず、オプションです。ちょっと

export class DetailsComponent implements OnInit { 

    constructor(public route: ActivatedRoute) { } 

    ngOnInit() { 
    console.log(this.route.params.value); 
    } 

} 
関連する問題