Как программно установить элемент управления размером Angular 2 на загрязнение?

Как пометить элемент Angular 2 как грязный в моем коде?

Когда я делаю это так:

control.dirty = true;

Я получаю эту ошибку:

Cannot set property dirty of #<AbstractControl> which has only a getter

Ответ 1

Вы должны использовать метод markAsDirty, например:

control.markAsDirty();

Это также будет означать, что все прямые предки являются грязными, чтобы поддерживать модель.

Ссылка на документы

Ответ 2

Для форм, управляемых шаблонами, мы можем использовать ниже общий код

 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();
        }
    }