【发布时间】:2019-05-05 13:39:21
【问题描述】:
我正在使用通过 JSON 加载的表单元素制作角度动态表单..
表单元素生成工作正常,但我需要根据从下拉列表中选择的选项更改表单元素..
生成表单元素的 JSON
jsonData: any = [
{
"elementType": "textbox",
"class": "col-12 col-md-4 col-sm-12",
"key": "project_name",
"label": "Project Name",
"type": "text",
"value": "",
"required": false,
"minlength": 3,
"maxlength": 20,
"order": 1
},
{
"elementType": "dropdown",
"key": 'project',
"label": 'Choose option to display',
"options": [
{ "key": 'description', "value": 'Show Project Description' },
{ "key": 'level', "value": 'Show Project Level' },
{ "key": 'members', "value": 'Show Project Members' }
],
"order": 2
},
{
"elementType": "textbox",
"class": "col-12 col-md-4 col-sm-12",
"key": "project_desc",
"label": "Project Description",
"type": "text",
"value": "",
"order": 3
},
{
"elementType": "dropdown",
"key": 'project_level',
"label": 'Choose Project Level',
"options": [
{ "key": 'low', "value": 'Low' },
{ "key": 'medium', "value": 'Medium' },
{ "key": 'high', "value": 'High' }
],
"order": 4
},
{
"elementType": "dropdown",
"key": 'project_members',
"label": 'Choose Project Member',
"options": [
{ "key": 'developer', "value": 'Developer' },
{ "key": 'leader', "value": 'Leader' },
{ "key": 'manager', "value": 'Manager' }
],
"order": 5
}
];
基于上面的JSON,生成元素..
在这里您可以看到Order 1 的文本框的项目名称没有任何变化。
然后在接下来我们有一个带有key as project的下拉菜单,从这里开始只有需求..
在选项中,如果我选择Show Project Description,则需要显示Project Description 文本框,而其他两个project_level 和project_members 需要隐藏格式..
同样,如果我选择Show Project Level,则仅需要显示Project Level 下拉列表,而Project Description 和Project Members 需要隐藏。..
Project Members.. 也一样
那么如何根据项目下拉值的选择来改变form-elements呢??
工作示例在这里https://stackblitz.com/edit/angular-x4a5b6-5ys5hf
请帮助我根据 project 下拉列表中的选择隐藏其他元素,仅使用角度动态形式..
【问题讨论】:
标签: javascript angular typescript angular6 angular-reactive-forms