【发布时间】:2020-02-20 11:07:45
【问题描述】:
我有一个自定义输入组件,只是普通 html input 标签的封面。
这是一个使用示例:
<form [formGroup]="formGroup">
<my-input [title]="Some title" formControlName="name"></my-input>
</form>
相关组件包含:
formGroup: FormGroup = new FormGroup({
name: new FormControl('', Validators.required),
});
我设法使用this approach 从my-input 组件中访问FormControl 实例,现在我想做的是在需要时为my-input 标题添加一个星号。
问题是 - 是否可以访问验证器列表以便我可以区分 required 验证器?
附:当然,我可以将required 属性放在元素本身上
<my-input ... required></my-input>
但我想使用反应形式。
【问题讨论】:
-
你为什么不在
<my-input [title]="Some title" [setRequired]="true" formControlName="name"></my-input>中设置另一个属性并使用@Input() setRequired: boolean进入孩子。在html中<span *ngIf="setRequired">*</span> -
@varman 我只是不想将验证器从组件类移动到模板,我觉得将逻辑保留在类中更合理
-
您是否实施了
ControlValueAccessor以在孩子身上使用formControlName? -
@varman 我确实做到了,不过,我认为这对案件没有任何影响
标签: angular forms validation