Ответ 1
Вы должны использовать метод markAsDirty
, например:
control.markAsDirty();
Это также будет означать, что все прямые предки являются грязными, чтобы поддерживать модель.
Как пометить элемент Angular 2 как грязный в моем коде?
Когда я делаю это так:
control.dirty = true;
Я получаю эту ошибку:
Cannot set property dirty of #<AbstractControl> which has only a getter
Вы должны использовать метод markAsDirty
, например:
control.markAsDirty();
Это также будет означать, что все прямые предки являются грязными, чтобы поддерживать модель.
Для форм, управляемых шаблонами, мы можем использовать ниже общий код
public onSubmitForm(cardFormObject: NgForm) {
if (!cardFormObject.valid)
this.markAsDerty(cardFormObject);
}
private markAsDerty(cardFormObject: NgForm) {
for (var eachControl in cardFormObject.controls) {
(<FormControl>cardFormObject.controls[eachControl]).markAsDirty();
}
}