angular - 表单控件和表单值中的表单控件名称有区别
问题描述
我在一个带有表单的 angualr 项目中工作,但是表单控制字段有一个问题,表单控制字段名称以前是基础,但我注意到尽管给出了一个值,但在提交表单后,表单控制值是不明确的。查了项目没有出结果,决定改表单控件名(希望能出结果),于是把表单控件名form base改成bace,但是遇到了更奇怪的东西……表单控件名in controls 是 bace,但 value 是 base(并且仍然未定义)
initialForm() {
this.calculateForm = this.fb.group({
employeeId: [''],
childrenCount: ['', Validators.required],
jobPercent: ['', Validators.required],
additionHour: ['', Validators.required],
contracts: this.fb.array([
this.fb.group({
bace: ['', Validators.required],
actionDate: ['', Validators.required],
expirationDate: ['']
})
]),
}
)
}
bace 在控件中(也在 ts 和 html 文件中),但在 form.value 中为“base”
<mat-form-field appearance="outline">
<mat-label>salary</mat-label>
<input matInput formControlName="bace" required>
</mat-form-field>
有谁知道问题是什么?
解决方案
这似乎很奇怪。你能创建一个 Stackblitz 来测试它吗?
我可以建议的另一件事是确保您没有 ASCII 问题,因此文本看起来像 bace 中的“c”,但无法识别该字符(尽管我不认为是这种情况)。
您可以尝试的另一个测试是在模板(或组件类)中打印两种情况的值:
this.calculateForm.get('contracts').controls['bace']
和
this.calculateForm.get('contracts').controls['base']
看看“bace”案例是否能给你更多提示
推荐阅读
- ruby-on-rails - 我只是不明白这个 RoR 是如何工作的(upvote downvote 功能)
- javascript - 在 js 中创建弹出窗口并且不再询问复选框的问题
- python - 如何在 Python 中序列化和反序列化复杂的 POCO 数据结构到 JSON
- css - 强制弹性项目的宽度为 50%
- c++ - 如何将迭代器值与整数进行比较?
- python - 将共享列表与 pathos 多处理一起使用会引发“发送的摘要被拒绝”错误
- python - PayPal Python“return_url”无法正常使用函数
- php - 是什么导致我的 Codeigniter 3 应用程序中出现此页面未找到错误?
- oracle-apex - 如何在 Oracle Apex 19.1 交互式网格中排序
- c# - 使用 LINQ 获取 XML 的主要元素属性