2016-06-01 3 views
0

В настоящее время я работаю над приложением, которое позволяет пользователям отвечать на вопросы о себе. Я беру эти вопросы из API. Теперь я хочу создать форму с этими вопросами в качестве входных данных. В настоящее время я использую нечто похожее на простую форму, описанную здесь: http://learnangular2.com/forms/Динамически создавать формы на основе объекта JSON

Теперь мне интересно, можно ли создать эту форму на основе вопросов, которые предоставляет мой API. Я могу получить объект JSON со всеми вопросами, но возможно ли создать цикл for, который заполняет форму вопросами в объекте JSON? Эта часть кода в примере выше, дает мне ощущение, что это не возможно, так:

this.loginForm = fb.group({ 
    email: ["", Validators.required], 
    password: ["", Validators.required] 
}); 

ответ

2

Использование Template-Driven forms

Используйте ngFor в цикле через вопросы и создать ngControl для каждого.

ngControl имена будут установлены в Question1, Question2 ...

<form #form="ngForm" (ngSubmit)="logForm(form.value)"> 
    <div *ngFor="#question of questionsList; #i = index"> 
    <label>{{question}}</label> 
    <input type="text" [ngControl]="'Question' + i"> 
    </div> 
<button type="submit">Submit</button> 
</form> 

logForm метод, внутри соответствующего компонента, получите объект, содержащий ключ (ngControl имя) и значение (соответствующее значение входного сигнала)

Смежные вопросы