我有一系列資料在我的應用程式中回圈。每個專案都包含checked表示是否應選中該專案的復選框的欄位。默認情況下,checked: false在我的list.html檔案中設定為。
<ion-item lines="full" *ngFor="let item of items">
<ion-label [class.strike]="item.checked" class="ion-padding ion-text-wrap">
{{ item.title }}
</ion-label>
<ion-checkbox slot="start" [(ngModel)]="item.checked" mode="ios" (ionChange)="itemChecked(item)"></ion-checkbox>
</ion-item>
在更改使用 選擇的復選框時ionChange,我呼叫我的itemChecked方法將我的傳遞item給它。
async itemChecked(item: Item) {
console.log(item); //I can see checked has been updated.
await this.firestore.updateItemKey(item, 'checked');
}
然后,在我的firestore服務檔案中,我像這樣更新檔案:
updateItemKey(item: Item, key: string) {
const itemDocRef = doc(this.firestore, `items/${item.id}`);
return updateDoc(itemDocRef, { key: item[key] });
}
但是,回到我的list.html檔案中,該專案沒有被檢查,并且我的 firebase 資料庫中沒有任何內容被正確更新?該專案很快顯示為選中,然后立即回傳未選中。
關于我可能忽略或錯誤地導致此問題的任何想法?
uj5u.com熱心網友回復:
而不是[(ngModel)]="item.checked"我認為你應該只使用[checked]="item.checked", 和 in itemChecked(),item.checked = !item.checked因為你想用新值更新 [checked] 系結。當然,你也應該處理 ionChange 的 checked==false 結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/408739.html
標籤:
