ionic framework week 7 phone book เรียนรู้การทำ Searh bar และการ Filter Array พร้อมทั้ง Tag Tel: สำหรับให้ device โทรออก


1.เปิดโฟลเดอร์ที่ต้องการเก็บไฟล์โปรเจ็ค พิมพ์ cmd บน address bar ด้านบน

2.เมื่อ cmd เปิดมาให้พิมพ์ ionic start week7_phonebook blank

3.พิมพ์ cd week7_phonebook แล้วพิมพ์ ionic serve เพื่อเปิด serve

4.ไปที่ปุ่ม start พิมพ์ visual studio code แล้วเปิดโปรแกรมขึ้นมา เมื่อโปรแกรมเปิดขึ้นมาให้เลือกเมนู file->open folder->เลือกหา week7_phonebook ของเรา แล้วกด open

5. เข้าไปที่โฟลเดอร์ src->app->home เปิดไฟล์ home.page.html เพื่อแก้ไข

6. home.page.html

<ion-header>
  <ion-toolbar>
    <ion-title>
      Phone Book
    </ion-title>
  </ion-toolbar>
</ion-header>

<ion-content>
<!--กล่อง search-->
<ion-searchbar (ionChange)="onSearch($event)" placeholder="ค้นหา">
</ion-searchbar>
<!--รายการเบอร์โทร-->
<ion-list>
  <div *ngIf="item.length>0;else noItem">
 <ion-item *ngFor="let item of item"  href="tel:{{item.tel}}">
   <ion-avatar slot="start">
     <img src="{{item.img}}">
   </ion-avatar>
   <ion-label>
     <h2>{{item.name}}</h2>
   </ion-label>
   <p>
     <ion-icon name="call"></ion-icon>
    {{item.tel}}
   </p>
 </ion-item>
</div>
<ng-template #noItem>
  <ion-item>
    ไม่พบข้อมูล
  </ion-item>
</ng-template>


</ion-list>

</ion-content>

 

7.home.page.ts

import { Component } from '@angular/core';

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {
  // ประกาศตัวแปรเก็บ ชื่อ เบอร์โทร รูปภาพ
  public item:Array<{name:string,tel:string,img:string}>=[];
  public allitem:Array<{name:string,tel:string,img:string}>=[];
  constructor() {
    this.item.push({
      name:'soku',
      tel:'089-923-2933',
      img:'/assets/p1.jpg'
    });
    this.item.push({
      name:'lulu',
      tel:'09012345677',
      img:'/assets/p2.jpg?1'
    });
    this.item.push({
      name:'lala',
      tel:'0999999999',
      img:'/assets/p3.jpg?2'
    });
   this.allitem=this.item;
  }
//เข้าสู่ฟังชั่นค้นหา
  onSearch(ev: CustomEvent){
    this.item=this.allitem;
    //นำค่าจากกล่อง search bar มาเก็บที่ตัวแปร val
    const val=ev.detail.value;
    //ถ้ากล่องค้นหามีพิมพ์ค่าเข้ามาโดยไม่มีช่องว่าง
    if(val!=='' && val.trim()!==''){
    //ทำการค้นหาด้วยคำสั่ง filter
       this.item=this.item.filter(
         //ระบุขอบเขตการค้นหาด้วย term ให้ชื่อทั้งหมดเป็นตัวพิมพ์เล็กและค้นหา
         term=>{
           return term.name.toLowerCase()
           .indexOf(val.trim().toLowerCase())>-1
         }
       );
    }
  }

}

 

By admin

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.