0Pricing
Angular Academy · บทเรียน

การผูกสองทางด้วย ngModel

ซิงค์อินพุตของฟอร์มกับสถานะคอมโพเนนต์

การผูกสองทางด้วย ngModel เป็นบทเรียน Angular Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Angular Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Angular Academy มีบทเรียนทั้งหมด 4 บทเรียน

การผูกแบบสองทางคืออะไร

การผูกแบบสองทางจะทำให้ค่าระหว่างคอมโพเนนต์กับมุมมองตรงกันเสมอ กล่าวคือ เมื่อส่วนหนึ่งอัปเดต อีกส่วนก็จะอัปเดตตาม ไวยากรณ์คือ [()] หรือรูปกล้วยในกล่อง

กล้วยในกล่อง

ไวยากรณ์รวม [(...)] เป็นรูปย่อของการผูกกับคุณสมบัติร่วมกับการผูกกับเหตุการณ์ วงเล็บเหลี่ยมคือกล่อง ส่วนวงเล็บกลมคือกล้วย

<!-- shorthand -->
<input [(ngModel)]="name">

<!-- equivalent to -->
<input [ngModel]="name" (ngModelChange)="name = $event">

แนะนำ ngModel

ngModel เป็นคำสั่งสำหรับการผูกแบบสองทางกับตัวควบคุมแบบฟอร์ม เช่น ช่องป้อนข้อมูล รายการเลือก และพื้นที่ข้อความ

<input [(ngModel)]="username">
<p>Hello, {{ username }}</p>

การนำเข้า FormsModule

หากต้องการใช้ ngModel คุณต้องนำเข้า FormsModule ในคอมโพเนนต์แบบสแตนด์อโลนหรือ NgModule

import { FormsModule } from "@angular/forms";

@Component({
  selector: "app-demo",
  standalone: true,
  imports: [FormsModule],
  template: "<input [(ngModel)]='name'>"
})
export class DemoComponent {
  name = "";
}

การผูกช่องป้อนข้อความ

ขณะที่ผู้ใช้พิมพ์ คุณสมบัติที่ผูกไว้จะอัปเดตทันที และเมื่อเปลี่ยนคุณสมบัติในโค้ด ช่องป้อนข้อมูลก็จะอัปเดตตาม

<input [(ngModel)]="email">
<p>Current: {{ email }}</p>

การผูกช่องทำเครื่องหมาย

ngModel ใช้กับช่องทำเครื่องหมายได้ โดยผูกกับค่าบูลีน

<input type="checkbox" [(ngModel)]="agreed">
<p>Agreed: {{ agreed }}</p>

// component
agreed = false;

การผูกรายการเลือก

เมื่อใช้กับองค์ประกอบรายการเลือก ngModel จะผูกกับค่าของตัวเลือกที่เลือก

<select [(ngModel)]="color">
  <option value="red">Red</option>
  <option value="blue">Blue</option>
</select>
<p>Picked: {{ color }}</p>

ngModel ภายในแบบฟอร์ม

ภายในแบบฟอร์มที่ขับเคลื่อนด้วยแม่แบบ ให้เพิ่มแอตทริบิวต์ name เพื่อให้ Angular ลงทะเบียนตัวควบคุมกับแบบฟอร์ม

<form #f="ngForm">
  <input name="city" [(ngModel)]="city">
</form>

ngModel แบบสแตนด์อโลน

นอกแบบฟอร์ม ngModel สามารถทำงานได้โดยลำพัง ตราบใดที่นำเข้า FormsModule แล้ว และไม่จำเป็นต้องมี name

<input [(ngModel)]="search">

ควรใช้ ngModel เมื่อใด

ngModel เหมาะอย่างยิ่งกับแบบฟอร์มอย่างง่ายที่ขับเคลื่อนด้วยแม่แบบ สำหรับการตรวจสอบที่ซับซ้อนและแบบฟอร์มแบบไดนามิก มักนิยมใช้แบบฟอร์มรีแอ็กทีฟมากกว่า

การตอบสนองต่อการเปลี่ยนแปลง

หากคุณต้องการเพียงตอบสนองต่อการเปลี่ยนแปลง ให้ผูกเหตุการณ์ (ngModelChange) โดยตรง แทนการใช้การผูกแบบสองทางเต็มรูปแบบ

<input [ngModel]="q" (ngModelChange)="onSearch($event)">

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจเกี่ยวกับการผูกแบบสองทางของ ngModel ของคุณ

ทบทวน

การผูกแบบสองทางใช้ไวยากรณ์กล้วยในกล่อง [(ngModel)] ซึ่งรวมการผูกกับคุณสมบัติและเหตุการณ์เข้าด้วยกัน ให้นำเข้า FormsModule เพื่อใช้กับช่องป้อนข้อมูล ช่องทำเครื่องหมาย และรายการเลือก

คำถามที่พบบ่อย

บทเรียน “การผูกสองทางด้วย ngModel” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การผูกสองทางด้วย ngModel” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Angular Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Angular Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การผูกสองทางด้วย ngModel”

ซิงค์อินพุตของฟอร์มกับสถานะคอมโพเนนต์ คุณปฏิบัติ Angular Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Angular Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Angular Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การผูกสองทางด้วย ngModel” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Angular Academy นี้ได้ไหม

ได้ บทเรียน Angular Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ทบทวนการผูกคุณสมบัติและเหตุการณ์
  2. การผูกสองทางด้วย ngModel
  3. อินพุตสัญญาณ model()
  4. คุณสมบัติที่ผูกสองทางแบบกำหนดเอง
← กลับไปที่ Angular Academy