Отправить вход с массивом в угловых 5
В нормальном HTML мы можем сделать это:
<input name="xyz[]" value="Lorem" />
<input name="xyz[]" value="ipsum" />
<input name="xyz[]" value="dolor" />
<input name="xyz[]" value="sit" />
<input name="xyz[]" value="amet" />
и в результате массив отправляется на сервер.
как я могу сделать это в угловых 5?
это не работает так же, как и не работает в ngModel.
3 ответа
Решение
Я использовал угловую форму группы, и это было решение этой проблемы:
<div ngModelGroup="xyz">
<input name="1" ngModel />
<input name="2" ngModel />
<input name="3" ngModel />
</div>
Я никогда не использовал его, но вы не можете использовать индекс?
<input type="text" [(ngModel)]="xyz[0]" />
<input type="text" [(ngModel)]="xyz[1]" />
<input type="text" [(ngModel)]="xyz[2]" />
<input type="text" [(ngModel)]="xyz[3]" />
Поскольку у вас есть длина в вашем массиве, вы можете использовать реактивные формы с FormArray или использовать формы на основе шаблонов. Поскольку вы заявили, что используете последний, вот как вы должны это сделать:
<ng-container *ngFor="let item of xyz; let i = index; trackBy: myCustomTrackBy">
<input type="text" [(ngModel)]="xyz[i]">
</ng-container>
В вашей машинописи:
myCustomTrackBy(index, item) { return index; }