Model ingredient akan digunakan oleh component recipe dan shopping, oleh karena itu pada tutorial digunakan pendekatan membuat folder baru app/shared. Dimana folder ini akan berisi file-file yang digunakan oleh berbagai component berbeda.
Perhatian: pendekatan diatas tidak mutlak, Anda bebas menggunakan struktur file sendiri.
Buat folder app/shared, kemudian buat file baru dengan nama ingredient.model.ts
export class Ingredient{
public name: string;
public amout: number;
constructor(name: string, amount:number){
this.name = name;
this.amout = amount;
}
}
Perhatian, penulisan code diatas dapat disingkat menjadi seperti dibawah (ini adalah fitur dari TypeScript).
export class Ingredient{
constructor(public name: string, public amount:number){}
}
Berikutnya kita gunakan model diatas pada component shopping-list.
Buka file shopping-list.component.ts, lalu tambahkan code untuk inisialisasi ingredients. (lihat bagian komentar).
Perhatian: sama seperti recipe model, saat ini data masih hardcode. Akan ada modul terpisah untuk menggunakan database.
import { Component, OnInit } from '@angular/core';
//import ingredient model
import { Ingredient } from '../shared/ingredient.model';
@Component({
selector: 'app-shopping-list',
templateUrl: './shopping-list.component.html',
styleUrls: ['./shopping-list.component.css']
})
export class ShoppingListComponent implements OnInit {
//menggunaan ingredient model
ingredients : Ingredient[] = [
new Ingredient("Oreo", 1),
new Ingredient("Tepung", 1),
];
constructor() { }
ngOnInit(): void {
}
}
Setelah insialisasi, ingredient dapat kita gunakan pada shopping-list.component.html.
<div class="row">
<div class="col-xs-10">
<app-shopping-edit></app-shopping-edit>
<hr>
<ul class="list-group">
<a class="list-group-item" style="cursor:pointer" *ngFor="let ingredient of ingredients">
{{ingredient.name}} ({{ingredient.amount}})
</a>
</ul>
</div>
</div>
Berikutnya kita akan tambahkan form pada component shopping-edit, buka file shopping-edit.component.html.
Untuk saat ini masih berupa tampilan saja, belum fungsional. Kita akan bahas pada modul terpisah.
<div class="row">
<div class="col-xs-12">
<form>
<div class="row">
<div class="col-sm-5 form-group">
<label for="name" class="form-label">Name</label>
<input type="text" class="form-control" id="name">
</div>
<div class="col-sm-2 form-group">
<label for="amount" class="form-label">Amount</label>
<input type="number" class="form-control" id="amount">
</div>
</div>
<div class="row mt-2">
<div class="col-xs-12">
<button class="btn btn-success me-1" type="submit">Add</button>
<button class="btn btn-danger me-1" type="button">Del</button>
<button class="btn btn-primary" type="button">Clear</button>
</div>
</div>
</form>
</div>
</div>
Sampai disini, berikut tampilan sementara dari Aplikasi Buku Resep.