URLのパスを取得する|AngularでWebサイト作成
Angularの学習の為に、AngularでWebサイトを作ってみることにしました(Angularのバージョンは4.3.6です)。
適宜作業内容をまとめていきます。
基本的な部分は公式チュートリアルなどを参考にしながら進めています。
例えばIDが100のアイテムを表示するURLを以下のようにしたり、
http://test.com/item/100
ユーザ情報を表示するURLを以下のようにしたりすることがあります。
http://test.com/user/100
こういった場合「100」の部分をAPIへのリクエストに投げる必要があります。
今回はこのようなURLの一部分をコンポーネント側で取得するサンプルプログラムを作成してみます。
開発環境
・OS:Windows8.1 64bit
・node:v7.2.1
・npm:4.0.5
・Angular:4.3.6
・開発ツール:VisualStudioCode
Angularサンプルプログラム
routing
まずはroutingを設定しておきます。
app-routing.module.ts
const routes: Routes = [
{
path: 'sample/:id',
component: SampleComponent
},
~省略~
]
@NgModule({
imports:[
RouterModule.forRoot(routes)
],
exports:[
RouterModule
]
})
export class AppRoutingModule{}
上記のように「:id」としてある部分を取得します。
app.module.tsで上記AppRoutingModuleをimportsに追記しておきます。
次にコンポーネント側です。
以下のようにswitchMapを使って取得することができます。
Component側
import 'rxjs/add/operator/switchMap';
~省略~
export class SampleComponent implements OnInit {
ngOnInit() {
this.route.params
.switchMap((params: Params) => this.sampleService.getSample(+params['id']))
.subscribe((sample: Sample) => {
this.sample = sample;
});
}
}
まとめ
冒頭に述べたような詳細ページを表示したりする際には使える方法だと思いました。
switchMapにはもっと調べてみたいと思います。
WEBアプリケーション関連 人気連載リンク
基礎からPHPWEBアプリ解発を学ぶなら・・
PHP基礎 連載
より実践的なWEBアプリ開発講座!Bootstrap活用を学ぶなら・・
魁!小野の塾 連載