提问人:mandrag.ora 提问时间:11/11/2023 更新时间:11/11/2023 访问量:18
在 Angular 反应式表单中将 formfield 初始化为禁用
Initialize formfield as disabled in Angular reactive forms
问:
我在服务中初始化我的表单定义,如下所示:
createForm() {
return this.formBuilder.group(
{
//... some formfields
hint: this.formBuilder.control<string>({ disabled: true, value: null as unknown as string }),
//... some more formfields
}
}
然后,在我使用表单的模板中,我只想显示“提示”表单字段,如果它没有被像这样禁用:
<div *ngIf="!form.controls['hint'].disabled">
<label>Hint:</label>
<textarea formControlName="hint"></textarea>
</div>
在我的代码中,我稍后决定是否根据条件启用/禁用表单字段。我分别用 or 来做这件事。form.controls['hint'].enable();
disable();
然而,当我打开表单时,“提示”表单字段已经显示(=启用),甚至在我执行任何启用/禁用逻辑之前。
我所做的一种解决方法是在我的组件的 OnInit 中的表单字段。但我真的不喜欢这种方法。按照文档,这应该是可能的。但不知何故,它似乎不起作用......form.controls['hint'].disable();
我错过了什么!?我什至没有试图将禁用的值建立在变量上,它应该一开始就被禁用。感谢您的任何建议。
答: 暂无答案
评论
*ngIf="form.controls['hint'].enabled"