=====patchValue() и setValue()===== Для программного задания форме значений используются методы ''patchValue()'' и ''setValue()''.\\ ====setValue==== Методу ''setValue()'' должен передаваться объект, полностью повторяющий структуру описанной модели формы this.form.setValue({ user:{ pass:'123456', email: 'anchikin@mail.ru' }, country: 'ru', answer: 'yes' }); Если ''setValue()'' передать "неполную" модель - будет сгенерирована ошибка. ====patchValue==== ''patchValue()'' может принимать лишь часть этой структуры, все "лишние" свойства будут проигнорированы. this.form.form.patchValue({ user: {email : 'anchikin@mail.ru'} }) Вторым параметром оба метода принимают объект, с помощью которого, например, можно сделать так, чтобы установка значения рективной формы Angular не инициировала событие valueChanges. this.form.form.patchValue( { user: {email : 'anchikin@mail.ru'} }, {emitEvent: false} ) ---- ====Полный пример==== import {Component, ViewChild} from '@angular/core'; import {NgForm} from "@angular/forms"; @Component({ selector: 'app-root', template: `

Введите корректный email

поле пароль не должно быть пустым

Форма была отправлена
        {{formData|json}}
      
` }) export class AppComponent { @ViewChild('myForm') form: any; answers = [{ type: 'yes', text: 'Да' }, { type: 'no', text: 'Нет' }]; defaultAnswer = 'no'; defaultCountry = 'ru'; formData = {}; isSubmited = false; submitForm(){ this.isSubmited = true; this.formData = this.form.value; this.form.reset(); console.log('submit', this.form); } autoComplete(){ this.form.setValue({ user:{ pass:'123456', email: 'anchikin@mail.ru' }, country: 'ru', answer: 'yes' }); } addRandEmail(){ const randEmail = 'anchikin@mail.ru'; this.form.form.patchValue({ user: {email : randEmail} }) } }