如何将元素更改为以角度形式输入或下拉?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将元素更改为以角度形式输入或下拉?相关的知识,希望对你有一定的参考价值。
我正在制作角度6应用程序,我使用角度动态形式,值来自JSON ..
简单的JSON:
jsonData: any = [
{
"elementType": "dropdown",
"key": 'project',
"label": 'Choose option to display',
"options": [
{ "key": 'inputbox', "value": 'Show Project Level as input box' },
{ "key": 'dropdown', "value": 'Show Project Level as dropdown' }
],
"order": 1
},
{
"elementType": "textbox",
"class": "col-12 col-md-4 col-sm-12",
"key": "project_level",
"label": "Project Level as input box",
"type": "text",
"value": "",
"order": 2
},
{
"elementType": "dropdown",
"key": 'project_level',
"label": 'Choose Project Level as dropdown',
"options": [
{ "key": 'low', "value": 'Low' },
{ "key": 'medium', "value": 'Medium' },
{ "key": 'high', "value": 'High' }
],
"order": 2
}
];
要求只来自这个json ..
看看清楚的工作示例https://stackblitz.com/edit/angular-x4a5b6-5ys5hf,
您可以在初始阶段看到我同时拥有输入框和dropdwon ..但是如果我从第一个下拉列表中选择显示项目级别作为下拉列表,我首先需要单独使用文本框,然后project_level键需要更改为选择框和反之亦然......
订单1有一个下拉列表,我有两个选项,
"options": [
{ "key": 'inputbox', "value": 'Show Project Level as input box' },
{ "key": 'dropdown', "value": 'Show Project Level as dropdown' }
],
如果我们选择第一个选项,其值为“显示项目级别”作为输入框,而如果我们选择具有“显示项目级别”值的第二个选项作为下拉列表。
根据上面的选择,我需要相应地切换表单元素,比如用户选择Show Project Level as input box
,然后我需要显示输入框,
{
"elementType": "textbox",
"class": "col-12 col-md-4 col-sm-12",
"key": "project_level",
"label": "Project Level as input box",
"type": "text",
"value": "",
"order": 2
},
如果用户选择Show Project Level as dropdown
,那么我需要显示下拉列表,
{
"elementType": "dropdown",
"key": 'project_level',
"label": 'Choose Project Level as dropdown',
"options": [
{ "key": 'low', "value": 'Low' },
{ "key": 'medium', "value": 'Medium' },
{ "key": 'high', "value": 'High' }
],
"order": 2
}
所以关键是单独使用project_level,但只需要根据输入框或选择框的选择来更改表单元素。
请帮助我根据order 1
下拉列表中的选择更改表单元素。
结果只能使用纯粹的angular和typescript / javascript方式而不需要jquery ..
@Undefined,或者使用两个变量“project_level_textbox”和“project_level_dropdown”,并根据formControl的值来制作可见或不是hte的形式或制作那个question.controlType(有些像是你可见或不是问题)
使用“type”,“field”和“value”添加一个新属性“controlTypeAlternative”并制作
[ngSwitch]="question.controlTypeAlternative?
form.get(question.controlTypeAlternative.field).value==
question.controlTypeAlternative.value?
question.controlTypeAlternative.type:
question.controlType:question.controlType"
如果运营商有些复杂?但主要是if具有属性controlTypeAlternative,检查form.control的值是否相等。如果不使用“controlType”
以上是关于如何将元素更改为以角度形式输入或下拉?的主要内容,如果未能解决你的问题,请参考以下文章