Например мне нужно применить FormControl к динамическому CVA компоненту.
Что значит динамический? Вы его сами создаёте через компонентфактори?
да, через factory или componentOutlet
https://habr.com/ru/articles/720084/ Вот тут не совсем про это писал, но вы можете получить форму в своём компоненте, и зарегать контрол
Спасибо, посмотрю 😊
смотрите. У меня была табличка, где каждой ячейке можно задать кастомный компонент. Там я инжектил форму private _formGroup = inject(ControlContainer, { optional: true, }); и получал контрол get control(): FormControl { return this.formGroup?.get(this.column?.name) as FormControl; } get formGroup(): FormGroup { if (this._formGroup instanceof FormGroup) { return this._formGroup; } if (this._formGroup instanceof NgForm) { return this._formGroup.form; } return null; } а в шаблоне делал вот такое <input #input type="text" [formControl]='control'/>
Да, ControlContainer можно попробовать, спасибо!
и еще вот такое в зависимости от вашей ситуации private setupControl() { if (!this.column) { return; } if (!this.control) { this.formGroup.registerControl( this.column.name, FormsUtil.initControlFromColumn(this.column, this.row?.data) ); } else { this.control.patchValue(this.row?.data[this.column.name], { emitEvent: false, }); } }
Обсуждают сегодня