我有一個被拉多次的窗體。我需要能夠將表單上提交的標誌重置爲false,以便每次刪除可能從上次留下的任何可能的錯誤消息。Angular resetForm不適用於嵌套對象
我發現將提交的標誌設置爲false的唯一方法是使用ngForm.resetForm(model)
方法。
這樣做效果不錯,只是它不會將ngModel綁定到嵌套在頂層模型中的任何對象。
給出的下列對象:
model: {
firstName: 'John',
contact: {
lastName: 'Smith'
}
}
和下面的輸入:
<input type='text' name='firstName' [(ngModel)]='model.firstName' />
<input type='text' name='lastName' [(ngModel)]='model.contact.lastName' />
第一時間的形式負載,一切正確顯示。
但是,如果您提交表格,然後致電this.myForm.resetForm(this.model)
,它將不會綁定model.contact.lastName
。它確實很好地綁定了model.firstName
。
我已經包括一個plunkr,說明問題here。
有沒有什麼辦法可以在resetForm之外重置提交的標誌?或者有人可以解釋爲什麼在調用resetForm時model.contact.lastName
字段沒有正確綁定?
當我這樣做時,輸入框是空白的,而不是包含喬治華盛頓。 **注意:提交的標誌返回false就好了。這只是對於model.contact.lastName的雙向綁定而言。 – Scottie
不是原始值,模型設置的新值。把它想象成一個人在網格上點擊一行。我想要更改模型以反映哪些值在該行上。但是如果該行有嵌套對象,它將不會更新輸入。這就是爲什麼resetForm需要一個模型。用新值重置表單域。我的plunkr只是一個簡化版本... – Scottie
Re:update - 那麼沒有辦法在名稱字段中映射嵌套對象? – Scottie