我有一個組件,我在其中顯示從資料庫中獲取的值。還有添加按鈕。單擊 Add ,我將文本欄位值推送到陣列。同樣系結到組件。該值正在陣列中設定。[(ngModel)] 但不顯示在文本框中。僅在我單擊框內時顯示。我無法確定這種行為的原因。請幫忙
onAdd() {
if (this.emailRecipients.length === 0) {
this.emailRecipients = [];
}
this.emailRecipients.push(this.enterEmailAddress);
}
</div>
uj5u.com熱心網友回復:
這是因為 Angular Change Detection,并且是預期的行為。
.push您應該為要反映的更改創建一個新的陣列實體,而不是通過呼叫來修改陣列。
this.emailRecipients = [...this.emailRecipients, this.enterEmailAddress];
來自 PrimeNG 檔案:
建議的更改檢測 AutoComplete 使用基于 setter 的檢查來識別建議是否已更改以更新 UI。為了使其作業,您的更改(例如添加或洗掉記錄)應始終創建新的陣列參考,而不是操作現有陣列,因為如果參考未更改,Angular 不會觸發 setter。
請注意,如果搜索后沒有可用的建議,請提供空陣列而不是空值。
參考:自動完成
uj5u.com熱心網友回復:
寫成這樣
onAdd() {
if (this.emailRecipients.length === 0) {
this.emailRecipients = [];
}
this.emailRecipients.push(this.enterEmailAddress);
this.emailRecipients = [...this.emailRecipients];
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/400346.html
