Angular: 处理组件添加到表单事件
Angular: handling component add to form event
我正在使用 formly 从 json 返回的表格中获取表格。考虑以下表格描述
{
"key": "key_radio",
"type": "radio",
"templateOptions": {
"required": true,
"options": [
{
"value": true,
"label": "Yes"
},
{
"value": false,
"label": "No"
}
]
}
},
{
"fieldGroupClassName": "row",
"hideExpression": "!model.key_radio",
"fieldGroup": [
{
"key": "key_a",
"className": "col-3",
"type": "input",
},
{
"key": "key_b",
"className": "col-4",
"type": "input"
},
{
"key": "key_c",
"className": "col-4",
"type": "input"
}
]
}
默认情况下,输入被 hiddenExpression
隐藏。单击“是”单选按钮后,将显示输入。当在第一个输入 (key_a) 中输入一个值时,我需要向后端发出请求并填写其他两个输入。听 form.get('key_a').valueChanges
是这里的自然解决方案。我仍然不知道在哪里可以设置此订阅。所以问题是:如何处理在单击“是”单选按钮和 hideExpression
评估后添加的输入?
如果有人正在阅读这篇文章,我已经找到了答案。
可以传递 fieldChanges
Subject
并订阅它。当评估 hideExpression
时,在这个主题中正式发出 FormlyValueChangeEvent
。话虽如此,您只需要订阅 Subject
并在订阅
中执行 form.updateValueAndValidity()
我正在使用 formly 从 json 返回的表格中获取表格。考虑以下表格描述
{
"key": "key_radio",
"type": "radio",
"templateOptions": {
"required": true,
"options": [
{
"value": true,
"label": "Yes"
},
{
"value": false,
"label": "No"
}
]
}
},
{
"fieldGroupClassName": "row",
"hideExpression": "!model.key_radio",
"fieldGroup": [
{
"key": "key_a",
"className": "col-3",
"type": "input",
},
{
"key": "key_b",
"className": "col-4",
"type": "input"
},
{
"key": "key_c",
"className": "col-4",
"type": "input"
}
]
}
默认情况下,输入被 hiddenExpression
隐藏。单击“是”单选按钮后,将显示输入。当在第一个输入 (key_a) 中输入一个值时,我需要向后端发出请求并填写其他两个输入。听 form.get('key_a').valueChanges
是这里的自然解决方案。我仍然不知道在哪里可以设置此订阅。所以问题是:如何处理在单击“是”单选按钮和 hideExpression
评估后添加的输入?
如果有人正在阅读这篇文章,我已经找到了答案。
可以传递 fieldChanges
Subject
并订阅它。当评估 hideExpression
时,在这个主题中正式发出 FormlyValueChangeEvent
。话虽如此,您只需要订阅 Subject
并在订阅
form.updateValueAndValidity()