Persiapan
Buat component baru
Buatlah component bernama Customer. Gunakan generator milik Angular CLI untuk mempercepatnya.
Mengisi template component baru
Isi file customer.component.html dengan kode berikut:
Santai, kode diatas hanya untuk membuat satu form dan satu alert message ala Bootstrap 4.
Perhatikan bahwa pada:
- Input text (line 6–7) kita pakai metode two-way binding terhadap variable customerName
- Submit button (line 9–11) kita gunakan event binding pada event onClick-nya.
- Alert message (line 14–22) kita gunakan string interpolation pada variable addNewMessage dan directive *ngIf yang akan bereaksi terhadap nilai boolean dari variable isAdded.
Mengatur logic component
Buka file customer.component.ts, lalu isi dengan kode berikut:
Perhatikan bahwa kita membuat:
- Tiga variables (line 9–11) yang digunakan untuk kebutuhan component
- Function addNew() (line 18–21) yang akan di-fire saat button diklik
Memanggil component: Customer dalam template utama
Isi file app.component.html dengan kode berikut:
Fokus pada line 7 dimana kita memanggil component: Customer yang sudah kita buat di atas. Sisanya hanya layouting ala Bootstrap 4.
Hasil Percobaan #1
Jalankan “ng serve” di terminal, buka browser, dan Anda akan dapati tampilan seperti ini:
Penjelasan ngIf
Selama nilai boolean dari suatu expression (dalam tutorial ini adalah variable isAdded) belum true, maka template yang diberi directive ngIf tidak akan dibuat.
Untuk membuktikan hal ini, kembalilah pada browser lalu refresh. Kemudian bukalah Chrome DevTool > window Console:
Perhatikan kode yang di-highlight di atas. Kode tersebut adalah milik Angular yang digunakan sebagai penanda suatu tempate ber-directive ngIf.
Saat kita mengisi input text dan mengklik submit button, maka kode HTML yang di-generate akan tampak berbeda seperti ini:
Tampak pada window Console bahwa suatu template (kode HTML) baru akan di-generate saat kondisi ngIf terpenuhi.
Menambahkan “else”
Tak lengkap suatu “if” tanpa “else”. Demikian juga dengan ngIf pun memiliki “else”-nya.
Buka file customer.component.html, lalu tambahkan kode berikut:
Pada file ini kita melakukan penambahan sebagai berikut:
- Line 15: menambahkan instruksi “else noCustomerAdded”
- Line 24–28: menambahkan inline template khusus Angular bernama #noCustomerAdded
Hasil Percobaan #2
Kembali ke browser, lakukan refresh, dan Anda akan dapati seperti ini:
Jelas terlihat bahwa sebelum kondisi ngIf terpenuhi, maka yang dimunculkan adalah else-nya, yaitu inline template.
Penjelasan “else”
Inline Template yang kita buat sebagai “else”-nya ngIf ini akan di-destroy saat kondisi ngIf terpenuhi.
Untuk membuktikan hal ini, kembalilah pada browser lalu refresh. Kemudian bukalah Chrome DevTool > window Console.
Di atas adalah kode HTML sebelum kondisi ngIf terpenuhi. Perhatikan bahwa nanti saat input text terisi dan submit button diklik, maka kode HTML yang di-highlight itu akan hilang (destroyed):
See? Saat kondisi ngIf terpenuhi, maka kode HTML yang berisi inline template akan dihancurkan (destroyed) dan template dalam ngIf akan dibuat (generated).
Atribusi Anda berupa clapping, sharing, ngasih komentar, dan following blog ini dapat menimbulkan efek samping berupa semangat menulis yang menggebu bagi saya