#angular #angular2-forms
#angular #angular2-формы
Вопрос:
Я создаю форму неизвестной длины. Отдельные входные данные могут иметь тип text, file, textarea и, возможно, даже select .
Я создал решение, используя *ngSwitch внутри *ngFor .
JSON, на котором я создаю форму:
[{
"name": "input1",
"type": "text"
}, {
"name": "input2",
"type": "file"
}, {
"name": "input3",
"type": "text"
}]
и код:
<div *ngFor="let part of myForm">
<div [ngSwitch]="part.type">
<div *ngSwitchCase="'text'">
<input/>
</div>
<div *ngSwitchCase="'file'">
....
</div>
....
</div>
</div>
Проблема с этим кодом заключается в том, что невозможно указать ngModel для отдельных входных данных, потому что, если бы было два ввода типа text, ngModel был бы дублированным.
Есть ли способ, которым я мог бы собрать все значения во что-то вроде массива? Можно ли создать решение с использованием реактивных форм?
Комментарии:
1. Я думаю, что ReactiveForms — это способ сделать это. angular.io/docs/ts/latest/cookbook/dynamic-form.html
2. Я реализовал решение с использованием реактивных форм, спасибо за подсказку. Что мне делать с этим вопросом?
3. Хороший вопрос, я бы просто оставил его на данный момент. Я бы создал ответ, но это была бы только ссылка на решение, которое не одобряется. Рад слышать, что у вас это работает!