Я пытаюсь использовать Angular Material с formGroup в Angular 2, и у меня проблема с проверкой ввода для вложенных formControls в разных компонентах.
Моя проблема: при отправке формы только вход в первой formGroup получает уведомление о том, что форма была отправлена.
Я создал следующий пример:
@Component({
selector: 'material-app',
templateUrl: 'app.component.html'
})
export class AppComponent implements OnInit {
public myForm: FormGroup;
constructor(private _fb: FormBuilder) {}
ngOnInit() {
this.myForm = this._fb.group({
nested: this._fb.group({
id: ['', Validators.required]
}),
id: ['', Validators.required],
});
}
}
У меня есть простая formGroup с одним вложенным formController. Это мой HTML:
<form [formGroup]="myForm">
<md-input-container>
<input mdInput required formControlName="id">
</md-input-container>
<other-component [myFormGroup]="myForm" myFormGroupName="nested"></other-component>
<button md-raised-button type="submit">Rechercher</button>
</form>
Другой компонент просто отображает другой ввод.
Я сделал плункер для иллюстрации: http://plnkr.co/edit/WR0cmVOhIfCdkqAVc8xX
Вы можете заметить, что если я ввожу поле и сразу выхожу из него, на обоих входах появляется красная строка ошибки. Но если я не коснусь ни одного из двух входов и нажму «Отправить», подчеркнут только невложенные входные данные. Это связано с тем, что вложенный не получает информацию о том, что форма была отправлена, даже если я передаю объект formGroup в качестве параметра.
Есть идеи, как я могу решить эту проблему? Как я могу сделать первый ввод информации о представленной форме?
Большое спасибо !