angular - Angular 8:如何将 formControlName 与 FormArray 一起使用
问题描述
如何映射formControlName
到特定formArray
项目?
我无法控制服务器数据并尝试使用电话号码数组创建表单。
表单本身在视觉上不会并排布置电话,我希望能够像通常使用 formGroup 一样声明电话的输入控件。
到目前为止,我所拥有的是以下内容:
控制器:
const exampleData = {
'name': 'John Doe',
'phones': [
{
'type': 'home',
'number': '5555555'
},
{
'type': 'cell',
'number': '5555555'
}
]
};
this.form = this.fb.group({
name:[],
phones: this.fb.array([
this.fb.group({
type: '',
number: []
}),
this.fb.group({
type: '',
number: []
})
]),
});
this.form.patchValue(exampleData);
模板
<input type="text" formControlName="name">
<!-- This works but I need to loop -->
<div formArrayName="phones">
<div *ngFor="let phone of form.get('phones').controls; let i = index">
<div [formGroupName]="i">
<label>Type: </label><input formControlName="type"/>
<label>Number: </label><input formControlName="number"/>
</div>
</div>
</div>
<!-- How can I point to a phone directly? -->
<input type="text" formControlName="point to type home's number...with helper function or something...">
看看这是否可能?
解决方案
试试这个来访问 formArray 项目:
<div [formGroup]="form.get('phones').at(1)">
<input type="text" formControlName="num">
</div>
推荐阅读
- ruby-on-rails - Rails 5 系统测试不会停留在后台!(带有硒和铬的水豚)
- ruby-on-rails - Heroku Push 在加载共享库时失败 Ruby Rails App 错误,文件太短
- c# - 包装同步方法以异步运行
- javascript - 同时关闭两个模态(模态内的模态)
- python - Scrapy 跟踪特定 div 中的链接
- python - 数据流错误:“客户端具有非平凡的本地和不可腌制的状态”
- shell - 如何将变量转换为字符串格式?KSH 外壳脚本
- sql - 仅在并行行之间合并,在 SQL 中
- bash - 在 .NETCore 服务器上调用 REST API
- php - 如果单个值有多个键,则按键过滤多维数组