2017-07-19 13 views
1

私は、顧客が行った購入に関する情報を示す顧客の購入履歴をコンポーネントに言います。私は顧客が行った以前の購入のリストを表示します。同じコンポーネントにルーティング

前の購入をクリックすると、購入情報を示す同じコンポーネントをロードして、ルート再利用が可能なルートで同じコンポーネントに移動したいということを意味します。私は前の購入履歴を表示したいと思います。誰かが私にどのようにそれをすることができるか教えてもらえますか?

私はplunkerのデモを行っています。このデモには、顧客が行ったすべての購入と購入のリストがあります。

this.router.navigateByUrl('/PurchaseHistory'); 

ルート再利用を有効にして同じコンポーネントにルーティングすることはできますか。

+0

なぜパス内のIDはありませんか? '/ PurchaseHistory /:id'のように –

答えて

0

PurchaseDataCrisisListComponentにリロードするのを忘れたようです。同じルートへのルーティングは冗長です。 plnkrをご覧ください。

EditPurchase(index:any){ 
    let Id:any=this.PreviousPurchases[index].PurchaseId; 
    this.purSrvc.GetPurchaseHistoryByPurchaseId(Id); 
    this.getPurchaseData(); 
    // this.router.navigateByUrl('/PurchaseHistory'); 
} 

その他(私はこの1つをお勧めします)(Iaが適切にブラウザの戻るボタンを処理するために)あなたのルートにIDを追加するためにここにされて使用できるアプローチ:ルータで

const appRoutes: Routes = [ 
    { path: 'PurchaseHistory/:id', component: CrisisListComponent }, 
    { path: 'PurchaseHistoryList', component: HeroListComponent, data: { shouldDetach: true} }, 
    { path: '', redirectTo: '/PurchaseHistoryList', pathMatch: 'full' } 
]; 

アップデートパス.navigate()命令を実行し、router.paramsイベントに登録します。

+0

ありがとうございました...あなたが実際に作ったプランカーは、前のレコードを取得し、UIを更新します。私はコンストラクタが再び発火したかったので、私はブラウザのバックをクリックすると前回の購入履歴が必要になります。つまり、ルート再利用を使用して保存されます。 –

+0

私はそれを解決する他の方法についての情報を追加しました –

関連する問題