Angular Forms – 4

Melanjutkan dari modul sebelumnya, kali ini kita akan membahas menggunakan default value pada form.

Contohnya, kita akan menggunakan default value pada element select.

Untuk default value, kita dapat gunakan one-way property binding, Buka file app.component.html, lalu tambahkan

<select id="secret" class="form-control" [ngModel]="defaultSecret" name="secret">

berikutnya kita perlu definisikan nilai property defaultSecret pada app.component.ts, misalnya kita akan gunakan value pet sebagai default.

defaultSecret = 'pet';

Berikut isi lengkap file app.component.html

<div class="container">
  <div class="row">
    <div class="col-xs-12 col-sm-10 col-md-8 col-sm-offset-1 col-md-offset-2">
      <form (ngSubmit)="onSubmit()" #f="ngForm">
        <div id="user-data">
          <div class="form-group">
            <label for="username">Username</label>
            <input type="text" id="username" class="form-control" ngModel name="username" required>
          </div>
          <button class="btn btn-default" type="button">Suggest an Username</button>
          <div class="form-group">
            <label for="email">Mail</label>
            <input type="email" id="email" class="form-control" ngModel name="email" required email #vemail="ngModel">
            <span *ngIf="!vemail.valid && vemail.touched">Please input valid email...</span>
          </div>          
        </div>
        <div class="form-group">
          <label for="secret">Secret Questions</label>
          <select id="secret" class="form-control" [ngModel]="defaultSecret" name="secret">
            <option value="pet">Your first Pet?</option>
            <option value="teacher">Your first teacher?</option>
          </select>
        </div>
        <button class="btn btn-primary" type="submit" [disabled]="!f.valid">Submit</button>
      </form>
    </div>
  </div>
</div>

file app.component.ts

import { Component, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  @ViewChild('f') myForm! : NgForm;
  //default value
  defaultSecret = 'pet';

  suggestUserName() {
    const suggestedName = 'Superuser';
  }

  // pendekatan pertama
  // onSubmit(form: NgForm){
  //   console.log(form);
  // }

  // pendekatan @ViewChild
  onSubmit(){
    console.log(this.myForm);
  }
}

Jika Anda jalankan, sesuai ekspektasi, element select akan ditampilkan dengan default value pet.

Sharing is caring:

Leave a Comment