У меня проблемы с формой, которая работает.
Я использую MaterializeCSS с Angular и для того, чтобы убедиться, что select
будет правильно инициирован, я использую следующий метод:
ngAfterViewInit() {
const selArray = this.select.toArray();
selArray.forEach(el => {
M.FormSelect.init(el.nativeElement);
});
}
Это работает нормально, моя проблема в том, что я использую FormArray , и когда я динамически создаю новый FormControl
, select
не работает.Это как будто не инициализировано.Я добавил код выше в моем методе addResident()
, и он не работает, но если мне нужно добавить снова, он работает.
Вот видео об ошибке: https://youtu.be/v1CHkmJtzCo
Вот код:
@ViewChildren('select') select: QueryList<ElementRef>;
ngAfterViewInit() {
const selArray = this.select.toArray();
selArray.forEach(el => {
M.FormSelect.init(el.nativeElement);
});
const dpArray = this.datePicker.toArray();
dpArray.forEach(element => {
M.Datepicker.init(element.nativeElement);
});
}
addResident() {
(this.hostForm.get('residents') as FormArray).push(
new FormGroup({
firstName: new FormControl(''),
lastName: new FormControl(''),
birthDate: new FormControl(''),
action: new FormControl('Insert'),
residentID: new FormControl(0),
relationship: new FormControl('')
})
);
const selArray = this.select.toArray();
selArray.forEach(el => {
M.FormSelect.init(el.nativeElement);
});
}