0

我正在使用正式从返回的 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评估后添加的输入?

4

1 回答 1

0

如果有人正在阅读本文,我已经找到了答案。

可以传递 afieldChanges Subject并订阅它。当被评估时,正式FormlyValueChangeEvent地在这个主题中发出。hideExpression话虽如此,您只需要订阅它Subjectform.updateValueAndValidity()在订阅中执行

于 2021-03-02T14:47:57.177 回答