2017-02-14 2 views

ответ

45

Найдено, что Object.keys может справиться с этим ..

Object.keys(this.form.controls).forEach(key => { 
    this.form.get(key).markAsDirty(); 
}); 
+1

Когда я использую эту функцию в onSubmit, я получаю ошибку 'Невозможно вызвать выражение, чей тип не имеет сигнатуры вызова. Тип «AbstractControl» не имеет совместимых сигнатур вызовов. «Кто-нибудь знает, почему? – maidi

+0

Object.keys (this.registerForm.controls) .forEach (key => { this.registerForm.controls [key] .markAsDirty(); }); – Foad

+0

Когда я пытаюсь Object.keys или даже «for in», я ничего не получаю. Тем не менее, если я console.log (form.controls), я могу просмотреть все элементы управления формы, содержащиеся в объекте. Я озадачен. –

4

Object.keys(this.registerForm.controls).forEach(key => { 
 
     this.registerForm.controls[key].markAsDirty(); 
 
    });

5

Для чего это стоит, есть другой способ сделать это без использования Object.keys (. ..) магия:

for (const field in this.form.controls) { // 'field' is a string 

    const control = this.form.get(field); // 'control' is a FormControl 

} 
Смежные вопросы