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()