ค้นหาเว็บไซต์

angular - ngModel แสดงค่าที่เหมือนกันสำหรับฟิลด์ที่แตกต่างกัน


นี่คืโครงการ Angular 5 และ Firestore ฉันกำลังใช้ฟอร์มกับ [(ngModel)] เพื่ออัปเดตเอกสารในฐานข้อมูล การอัปเดตสำเร็จ แต่การที่ [(ngModel)] แสดงค่าฟิลด์ของเอกสารในช่องป้อนข้อมูลเองนั้นไม่ถูกต้อง เช่น ตัวข้อความแสดงตัวอย่าง (placeholder) ผิด แต่ละช่องป้อนข้อมูลจะแสดงค่าฟิลด์เดียวกัน ทั้งที่ควรจะต่างกัน ตัวอย่างเช่น

ในฐานข้อมูล เอกสารของฉันดูเหมือนแบบนี้

document
  field1: document title
  field2: google
  field3: https://www.google.com

แต่กล่องป้อนข้อมูลของฉันแสดงแบบนี้

กล่องใส่ข้อมูล 1 แสดง https://www.google.com

กล่องใส่ข้อความ 2 แสดง https://www.google.com

กล่องใส่ข้อมูล 3 แสดง https://www.google.com

นี่คือ HTML

<ng-container *ngFor="let x of xyz | async">
  <div class="columns">
    <div class="column">
      <form>
        <input [(ngModel)]="x.field1" #v1>
        <input [(ngModel)]="x.field2" #v2>
        <input [(ngModel)]="x.field3" #v3>
        <button (click)="update(v1.value, v2.value, v3.value)">update</button>
      </form>
    </div>
    <div class="column">
      {{x.field1}} #### <-- THESE WORK FINE
      {{x.field2}}
      {{x.field3}}
    </div>
  </div>
</ng-container>

ฉันพลาดอะไรไปใน component.ts หรือเปล่า?

คำตอบ #1

คุณต้องตั้งชื่อให้กับข้อมูลนำเข้าของคุณ และแต่ละข้อมูลนำเข้าต้องมีชื่อที่แตกต่างกัน

คำตอบ #2

ลบแท็กฟอร์มออกเพราะ ngmodel ภายในฟอร์มอาจทำให้เกิดปัญหาได้