javascript - 基于JSON对象动态创建表单

标签 javascript typescript angular ionic2

我目前正在开发一款应用程序,允许用户回答有关自己的问题。我正在从 API 检索这些问题。现在,我想创建一个包含这些问题作为输入的表单。我目前正在使用类似于此处描述的简单形式的东西:http://learnangular2.com/forms/

现在,我想知道是否可以根据我的 API 提供的问题创建此表单。我可以获得包含所有问题的 JSON 对象,但是是否可以创建一个 for 循环,用 JSON 对象中的问题填充表单?上面例子中的这部分代码给我的印象是这样是不可能的:

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

最佳答案

使用Template-Driven forms

使用 ngFor 循环问题并为每个问题创建 ngControl

ngControl 名称将设置为 Question1Question2 ...

<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方法,在相应组件内部,会获取包含key(ngControl名称)和value(对应输入值)的对象

关于javascript - 基于JSON对象动态创建表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37576511/

相关文章:

javascript - 如何从对象数组中检索随机对象? JavaScript

javascript - 这里 api 不会使用 Geojson 在 map 上绘制,无法读取未定义的属性 geojson

javascript - 当用户输入 React js 时如何设置自定义输入状态结构

angular - 找不到名字 'angular.module'

angular - karma : Angular 4 No provider for Service

angular - Observable 继续调用 API 并根据条件更改参数

javascript - 调整 Html 文本区域的大小

typescript - 当前没有初始化 firebase.app.App 实例。 Angular 6 登录时出现电话错误

javascript - 对 TypeScript 类型的 ChildProcess 类的引用

typescript - 是否可以将 TypeScript 编译成缩小的代码?