2017-12-07 6 views
0

のは、私が角度:子ルートからパラメータを抽出するにはどうすればよいですか?

+--------------------+-------+----------+---------+ 
| Label | Date  | Items | Location |   | 
+-------+------------+-------+----------+---------+ 
| REF 1 | 12/12/2017 | 3  | Floor 1 | Details | 
+-------+------------+-------+----------+---------+ 
| TXD 7 | 12/31/2017 | 1  | Floor 3 | Details | 
+-------+------------+-------+----------+---------+ 

Detailsがボタンである。この表をしたとしましょう。ユーザーが詳細ボタンをクリックすると、タブ付きのdivが下部に表示されます。ユーザーメニュー<li><a [routerLink]="'/gift'">Gift</a></li>からの贈り物リンク、ギフトコンポーネントが表示されたらここで

+------------------------+ 
| TAB 1 | TAB 2 | TAB 3 | 
+--------+-------+-------+------------------------+ 
|             | 
| Content of the TAB 1       | 
|             | 
|             | 
+-------------------------------------------------+ 

は、ルーティング

RouterModule.forChild([ 
    { 
    path: 'gift', component: GiftComponent, 
    }, 
    { 
    path: 'gift/:id', component: GiftComponent, 
    children: [ 
     { path: '', redirectTo: 'giftItemList', pathMatch: 'full'}, 
     { path: 'giftItemList', component: GiftItemListComponent }, 
     { path: 'giftItemDetails', component: GiftItemDetailsComponent } 
    ] 
    }  
]) 

です。上部のみが表示されます。

ユーザが

<td> 
    <button (click)="displayGiftItems(gift.id)" class="btn btn-link"> 
     Details 
    </button> 
</td> 

は、コンポーネントからdisplayGiftItems関数が呼び出されると、詳細ボタンをクリックします。これは、子コンポーネントが表示されるところで、周囲のDIVを可視にします。次に、子コンポーネントに移動します。私は、詳細ボタンをクリックすると

displayGiftItems(id: number, e) { 
if (id) { 
    this.giftItemsPanelIsVisible = true; 
    this.router.navigate(['giftItemList'], { relativeTo: this.route}); 
} 

}

、urlはこのフォームを持っていません:gift/1/giftItemList

このURLを取得する方法と、このURLからパラメータを抽出する方法はありますか?

+0

あなたのURLはどのような形式ですか?あなたが実際にIDを経路に追加しているところはどこにも見当たりませんか? – DeborahK

答えて

1

を支援するための

ありがとうございますが、このような何かを試みることができる:この記事を参照してください

const id = route.paramMap.get('id'); 

Sending data with route.navigate in Angular 2あなたはそれにこのような何かを読ん

displayGiftItems(id: number, e) { 
if (id) { 
    this.giftItemsPanelIsVisible = true; 
    this.router.navigate(['gift', id, 'giftItemList']); 
} 

+0

こんにちはデボラ、私はあなたのコースを複数形で見ている角度を学んでいます。少なくとも、今度はURLが 'http:// localhost:4200/gift/1/giftItemList'という正しい形式になっています。しかし、何も底に起こっていない。この行 'this.router.navigate(['gift'、id、 'giftItemList']);'をコメントアウトすると、パネルが表示されます。それ以外の場合、何も起こりません( – Richard77

+1

:-)あなたの問題を示すプランナーを構築することは可能でしょうか?そうでなければ、私のgithubに投稿されたサンプルアプリケーションをルーティングに関する提案として見ることができます。 「角度ルーティング」コースでは、ルーティングされたタブを実装する方法を示します。 – DeborahK

+1

問題は、角度ルーティングが動作する方法を少し理解していたことでした。ルーティングに関するあなたのコースを見て、私が経験していたこの問題やその他の問題を解決しました。 – Richard77

関連する問題