angular - 在FormArray中添加控件时可以设置FomControl的占位符吗?
问题描述
想知道我是否可以为(组件中)添加占位符文本FormControl
,这是我的代码:
(this.paramsForm.get(
'parameters'
) as FormArray).push(new FormControl('', [Validators.required]));
用html渲染
<div *ngFor="let formControl of paramsForm.get('parameters').controls">
<mat-form-field appearance="outline" class="block push-bottom">
<input
matInput
type="text"
[formControl]="formControl" //TODO
placeholder="formControl" //TODO
/>
</mat-form-field>
</div>
这里的答案很有帮助,但在我的情况下,有一个对象数组 ( {controlName:'name', value:'', placeholder: 'Enter name'}, {controlName:'email', value:'', placeholder: 'Enter email'}
) 来动态创建控件并为每个控件设置占位符文本。谢谢!
解决方案
在@Eliseo 评论之后,将占位符文本保存在一个数组中,结果如下:
我的 JSON 对象:
exportParameters
: [groupTitle:'Export Group', parameters:[{key:'username', value:'', displayName:'输入用户名'}, key:'password', value:'', displayName:'输入密码' } ]]
在 component.ts 中,创建了一个组
placeholders: string[] = [];
this.paramsForm = this.formBuilder.group({
exportParameters: this.fb.group({
parameters: this.fb.array([])
})
})
this.exportParameters.parameters.forEach( (param,index) => {
(this.paramsForm.get('exportParameters.parameters') as FormArray).push (new FormControl('',[Validatrors.required]));
this.placeholders[index] = param.displayName;
})
在组件的 html 中:
<div *ngFor="let formControl of paramsForm.get('exportParameters.parameters').controls; let i = index;">
<mat-form-field>
<input type="text" placeholder = "{{ placeholders[i] }}" />
</mat-form-field>
</div>
希望这对某人有帮助!
推荐阅读
- spring - JWT 令牌的签名无效 - Azure + Spring Boot
- powerbi - 具有过滤值的未过滤值列表
- ios - 将 AVAudioSession 类别从播放更改为 playAndRecord
- javascript - 尽管部分和公用文件夹设置正确,但 CSS 仅加载两个 ejs 文件中的一个
- java - 安卓电视盒 HDMI 输入视频
- c# - Selenium c# 从网页中抓取信息
- python - Django如何识别连接已从客户端关闭
- database - 是否可以恢复
- clang - 如何配置 clangd 以查找丢失的外部头文件?
- matlab - 使用自定义分布在 MATLAB 中使用 MLE 估计变量时出错