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表单控件。
问题:
- 如果 TAX 是动态的,我如何将这些值传递给 Web 服务,比如 WebAPI2 作为模型?
- 是否可以从
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]
});
场景:
表单是动态生成的,我用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表单控件。
问题:
- 如果 TAX 是动态的,我如何将这些值传递给 Web 服务,比如 WebAPI2 作为模型?
- 是否可以从
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]
});