我有一个反应形式。设置与此类似:
myForm: FormGroup;
this.myForm= new FormGroup({
name: new FormControl("", [Validators.required, Validators.maxLength(15), Validators.pattern('...')]),
...
});
我在我的表单上使用它,如下所示:
<input
type="text"
formControlName="name"
/>
<div *ngIf="name.errors?.required">
Name is required
</div>
<div *ngIf="name.errors?.maxlength">
Name must be {{ name.errors.maxlength.requiredLength }} characters
</div>
<div *ngIf="name.errors?.pattern">
Name has invalid characters.
</div>
这只是我表格的精简版。我有多个输入,我必须为每个输入创建错误 div。
所以为了解决这个问题,我尝试创建一个组件。该组件与上面的代码非常相似:
<input
type="text"
[formControlName]="formControlName"
/>
<div *ngIf="name.errors?.required">
Name is required
</div>
etc...
ts文件:
@Component({
selector: 'app-text',
templateUrl: './text.component.html'
})
export class TextComponent {
@Input() formControlName: FormControl;
}
所以在我的表单上,我想按如下方式使用这个组件:
<app-text [formControlName]="name"></app-text>
但我不能让它与 formControlName 属性一起使用。
这可能吗?
谢谢
我快到了。
我已经创建了这个 StackBlitz,所以请展示我的进度:
现在只是在努力解决错误以及如何访问 formControl 以检查这些错误