Hi, I am using JSON Forms to build dynamic form in Angular. In one of my use case I want to enable/disable or show/hide one control in a table row. But its not working as expected when go for Table. Please find the schema and ui json. All my requirement working when I go for ListWithDetail, But I need to show as table only.
Design:
Schema:
{
"type": "object",
"properties": {
"company": {
"properties": {
"users": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"phonenumber": {
"type": "string"
},
"itemRequiredFlag": {
"type": "boolean"
},
"itemConditionalRequiredFlag": {
"type": "boolean"
}
},
"required": [
"name",
"phonenumber",
"itemRequiredFlag"
],
"allOf": [
{
"if": {
"properties": {
"itemRequiredFlag": {
"enum": [
true
]
}
},
"required": [
"itemRequiredFlag"
]
},
"then": {
"required": [
"itemConditionalRequiredFlag"
]
}
}
]
}
}
}
}
}
}
UI Schema:
{
"type": "VerticalLayout",
"elements": [
{
"type": "Control",
"scope": "#/properties/company/properties/users",
"label": "Users",
"options": {
"labelRef": "#/properties/name",
"detail": {
"type": "VerticalLayout",
"elements": [
{
"type": "Control",
"scope": "#/properties/name",
"label": "Name"
},
{
"type": "Control",
"scope": "#/properties/phonenumber",
"label": "Phone Number"
},
{
"type": "Control",
"scope": "#/properties/itemRequiredFlag",
"label": "Required Flag"
},
{
"type": "Control",
"scope": "#/properties/itemConditionalRequiredFlag",
"label": "Conditional Required Flag",
"rule": {
"effect": "ENABLE",
"condition": {
"scope": "#/properties/itemRequiredFlag",
"schema": {
"const": true
}
}
}
}
]
}
}
}
]
}