angularメモ帳

angular始めました。
動かすために調べたことをメモしています。

493 views

フォームを作成する

ブラウザでよく使用するフォームを作成してみます。

本章で作成するフォームは次のとおりです。
* htmlには名前と年齢を入力するテキストエリアと、OKボタンのフォームを表示する
* OKボタンを押すとコンポーネントがフォームの値を受け取りコンソールに入力された名前と年齢を出力する

モジュールの設定

フォームを利用するにはFormのモジュールをインポートする必要があります。
app.module.tsに以下の★のコードを追加します。

[app.module.ts]

  1. import { BrowserModule } from '@angular/platform-browser';
  2. import { NgModule } from '@angular/core';
  3. import { RouterModule, Routes } from '@angular/router';
  4. import { FormsModule, ReactiveFormsModule } from '@angular/forms';//★
  5. import { AppComponent } from './app.component';
  6. import { HelloComponent } from './hello/hello.component';
  7. const routes:Routes = [
  8. {path:'hello', component:HelloComponent}
  9. ];
  10. @NgModule({
  11. declarations: [
  12. AppComponent,
  13. HelloComponent
  14. ],
  15. imports: [
  16. BrowserModule,
  17. ReactiveFormsModule,//★
  18. RouterModule.forRoot(routes)
  19. ],
  20. providers: [],
  21. bootstrap: [AppComponent]
  22. })
  23. export class AppModule { }

次にhello.component.tsにフォームグループを作成します。

hello.compoent.ts

  1. import { Component, OnInit } from '@angular/core';
  2. import { FormControl, FormGroup } from '@angular/forms';//★
  3. @Component({
  4. selector: 'app-hello',
  5. templateUrl: './hello.component.html',
  6. styleUrls: ['./hello.component.css']
  7. })
  8. export class HelloComponent implements OnInit {
  9. sampleFormGroup = new FormGroup({//★
  10. name: new FormControl(''),//★
  11. age: new FormControl(0)//★
  12. });//★
  13. constructor() { }
  14. ngOnInit(): void {
  15. }
  16. onClick() {//★
  17. let result = this.sampleFormGroup.value;//★
  18. console.log(result.name);//★
  19. console.log(result.age);//★
  20. }//★
  21. }

2行目で、FomrControlとFormGroupのモジュールをインポートしています。
10行目~13行目でFormGroupを作成しています。
11行目と12行目はそれぞれ名前を入力するためのFormControlと年齢を入力するコントロールです。
それらをまとめているのがFormGroupになります。

21行目~25行目はonClick関数で、ボタンをクリックされたときに呼び出されます。
呼び出されたら、フォームの値をコンソールに出力しています。

最後にhello.compoent.htmlです。

[hello.compoent.html]

  1. <p>hello works!</p>
  2. <form [formGroup]="sampleFormGroup" (submit)="onClick()">
  3. <input type="text" formControlName="name" />
  4. <input type="number" formControlName="age" />
  5. <input type="submit" value="click" />
  6. </form>

2行目で、hello.compent.10行目で宣言しているsampleFormGroupをformに設定し、submitした場合にonClickが呼ばれるように定義しています。
name,ageの入力はFormGroup内のコントローラーと紐づきます。
以下のように名前と年齢を入力し、clickボタンを押すと、コンソールに名前と年齢が表示されます。

Page 8 of 38.

前のページ 次のページ



[添付ファイル]

1.angular flex layoutについて.docx  


お問い合わせ

プロフィール

すぺぺぺ

自己紹介

本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。

サイト/ブログ

https://www.osumoi-stdio.com/novel/

ツイッター

@darkimpact0626