ルート
const appRoutes: Routes = [
{ path: '', redirectTo: '/companies/unionbank', pathMatch: 'full'},
{ path: 'companies/:bank', component: BanksComponent },
{ path: '**', redirectTo: '/companies/unionbank' }
];
成分
const NAVBAR = [
{
name: 'Banks',
submenu: [
{ routelink: '/companies/unionbank', name: 'Union Bank' },
{ routelink: '/companies/metrobank', name: 'Metro Bank' },
{ routelink: '/companies/bdo', name: 'BDO' },
{ routelink: '/companies/chinabank', name: 'China Bank' },
],
},
...
];
例のURL:http://localhost:8099/#/companies/bdo
私は手に入れたいString
bdo上記のサンプル URL では、
window.location.href を使用して URL を取得し、配列に分割できることはわかっています。その方法で、上記の URL の最後のパラメータを取得できます。ただし、Angular でこれを行う適切な方法があるかどうかを知りたいと思いました。
ご協力いただければ幸いです。ありがとうございます
ベストアンサー1
更新: 2019年9月
何人かの人が言及しているように、 のパラメータにはparamMap
共通Map
API を使用してアクセスする必要があります。
パラメータが変更される可能性を気にしない場合に、パラメータのスナップショットを取得するには:
this.bankName = this.route.snapshot.paramMap.get('bank');
パラメータ値の変更をサブスクライブして通知を受ける(通常はルータのナビゲーションの結果として)
this.route.paramMap.subscribe( paramMap => {
this.bankName = paramMap.get('bank');
})
更新: 2017 年 8 月
Angular 4以降はparams
新しいインターフェースに置き換えられ、廃止されました。paramMap
上記の問題のコードは、一方を他方に置き換えるだけで動作するはずです。
元の回答
ActivatedRoute
コンポーネントに注入すると、ルートパラメータを抽出できるようになります
import {ActivatedRoute} from '@angular/router';
...
constructor(private route:ActivatedRoute){}
bankName:string;
ngOnInit(){
// 'bank' is the name of the route parameter
this.bankName = this.route.snapshot.params['bank'];
}
ユーザーが最初に別のコンポーネントに移動せずに、銀行間を直接移動することを期待する場合は、Observable を介してパラメーターにアクセスする必要があります。
ngOnInit(){
this.route.params.subscribe( params =>
this.bankName = params['bank'];
)
}
ドキュメントについては、2つの違いを含めてこのリンクをチェックしてください「アクティブルート「