Angular中的动态表单问题

时间:2017-09-14 11:44:58

标签: forms angular angular-forms

情景:

动态生成表单,我使用this tutorial动态创建表单。当我单击“提交”按钮时,我在组件中获得的表单值是

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是动态的,那些表单控件是从税表创建的,如果表格有TAX3和TAX4,那么代替上面表格中的TAX1和TAX2,就会生成TAX3和TAX4表单控件。

问题:

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

    任何建议都将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

alexKhymenko的解决方案应该运作良好。或者,如果您要提交给API的值始终的格式为TAX{d},其中d是某些数字组合,您可以使用以下内容获取只是请求对象上的那些值:

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