У меня реактивная форма.Настройка похожа на это:
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 file:
@Component({
selector: 'app-text',
templateUrl: './text.component.html'
})
export class TextComponent {
@Input() formControlName: FormControl;
}
Поэтому в своей форме я хотел бы использовать этот компонент следующим образом:
<app-text [formControlName]="name"></app-text>
Но я не могу заставить это работать со свойством formControlName.
Возможно ли это?
Спасибо
Я почти у цели.
Я создал этот StackBlitz, так что покажите мой прогресс:
Демо
Просто борюсь с ошибками сейчас и как получить доступ к форме контроля для проверкиза эти ошибки