Angular 中的动态表单问题

Dynamic form Issue in Angular

场景:

表单是动态生成的,我用this tutorial动态创建表单。当我点击 "Submit" 按钮时,我在组件中得到的表单值为

ts :

  doSubmitICR(form) {
    console.log(form.value);

  }

form.value 具有以下值

{
 CaptainPoint:"0",
 Category:"restaurant",
 Description:"Test",
 DisplayDept:"kitchen",
 Group:"restaurant",
 GuestPoint:"0",
 ItemCode:"1",
 ItemName:"Test Item",
 PrintingDept:"frontoffice",
 SalesRate:"3",
 SubGroup:"restaurant",
 TAX1:true,
 TAX2:true,
 TabDisplay:"restaurant",
 Unit:"restaurant"
}

TAX1 和 TAX2 是动态的,这些表单控件是从税收 table 创建的,如果 table 有 TAX3 和 TAX4,那么上面的表单中的 TAX1 和 TAX2 将由 TAX3 和生成TAX4表单控件。

问题:

  1. 如果 TAX 是动态的,我如何将这些值传递给 Web 服务,比如 WebAPI2 作为模型?
  2. 是否可以从 form.value 中仅过滤 TAX 元素?

如有任何建议,我们将不胜感激。谢谢。

alexKhymenko 的解决方案应该可以正常工作。或者,如果您要提交给 API 的值将 始终 具有 TAX{d} 的格式,其中 d 是数字的某种组合,您可以使用以下方法获取请求对象上的那些值:

let request = {};
Object.keys(form.value).forEach(key => {
    if(/^TAX[\d]+$/.test(key)) 
        request[key] = form.value[key]
});