You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 15中用Renderer2构建动态表单提交值为空求助

问题分析与解决方案

核心问题:控件名称不匹配

你在isNumber方法中调用renderInput时,错误传入固定字符串'nomPdd'作为第一个参数,导致生成的输入框formControlName属性值为nomPdd,但你在queryForm中添加的控件名称是实际的nomParam(比如id_usuario)。两者名称不匹配,Angular无法将输入框的值与FormControl绑定,所以提交时所有控件值都是空的。

修正代码

把isNumber方法中的renderInput调用参数替换为实际的nomParam:

isNumber(nomParam: string) {
    this.renderInput(nomParam, 'number') // 将'nomPdd'改为nomParam
    this.queryForm.addControl(
      nomParam,
      new FormControl('', [Validators.required])
    );
}

同时检查其他类型处理方法(isSucursal、isVarchar、isDate),确保它们调用renderInput时也传入正确的nomParam,而非固定字符串。

额外注意事项

  1. 确保承载动态表单的容器外层有正确绑定FormGroup的<form>标签:
<form [formGroup]="queryForm" (ngSubmit)="onSubmit()">
  <div #formulario></div>
  <button type="submit">提交</button>
</form>
  1. 动态创建输入框时,确保formControlName和queryForm中添加的控件名称完全一致(Angular的FormControl名称区分大小写)。

内容的提问来源于stack exchange,提问作者Eduardo Mancilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 10:20:11