Я хотел бы динамически создавать 3 входных тега в Angular 6, чтобы не копировать / вставлять HTML-код, потому что эти элементы ввода имеют схожий HTML и функциональность.
Для этого я создал массив "reusableItems" внутри компонента и инициализировал его:
let numberOfInputElements = 3;
for (let i = 0; i < numberOfInputElements; i++) {
this.reusableItems.push({
answer: 'Answer ' + (i +1),
passwordRecoveryAnswer: this.user['passwordRecoveryAnswer' + (i + 1)]
});
}
Затем я поместил код в свой HTML:
<div *ngFor="let item of dropDownDataManagerService.reusableItems" >
<li class="col-xs-12 pl-lg pr0 pv-sm bd1-bottom">
<div class="col-xs-4 ph0 pt"> {{item.answerTitle}}</div>
<div class="col-xs-8">
<input type="text" name={{item.answer}} ref-{{item.answer}}="ngModel" class="col-sm-12 k-textbox ph0"
[(ngModel)]=item.passwordRecoveryAnswer
[pattern]="[a-z]"
required autocomplete="off"/>
</div>
</li>
</div>
Кажется,работает нормально, но тогда мне нужно добавить сообщения об ошибках, когда эти поля будут пустыми и не будут соответствовать шаблону.Что-то вроде:
<div *ngIf="__{{item.answer}}__.errors?.required ">
{{'Please provide an answer' | translate}}
</div>
<div *ngIf="__{{item.answer}}__.errors?.pattern">
{{'Pattern is not match'}}
</div>
Я не знаю, что мне поместить в состояние ngIf.Как я могу это сделать, если мои переменные ссылки на шаблон взяты из массива?У кого-нибудь есть идеи?
Спасибо