I have a container with one or more form fields in it. I would like to bind the hidden
property of the parent container to the disabled
property of the child items
How do we do this?
I have a fiddle here to illustrate. I have fields in my optional container that are required. So when visible, they should be required, when hidden they should be optional. I know that I can add a handler that can set allowBlank: true
but that seems tedious.
Register parent's hidden state in viewModel to get parents state in child component.
change "containerHidden" property in viewModel to true or false to test it. here is fiddle
viewModel:{
data:{
containerHidden:true
}
},
defaults: {
labelAlign: "right"
},
items: [
{
xtype: "textfield",
fieldLabel: "Name",
allowBlank: false
},
{
xtype: "datefield",
fieldLabel: "Date of Birth",
emptyText: "18+ gets more options",
allowBlank: false,
listeners: {
change: "onDoBChange"
}
},
{
xtype: "container",
reference: "AgeRestrictedArea",
bind:{
hidden:"{containerHidden}"
},
defaults: {
labelAlign: "right"
},
items: [
{
xtype: "textfield",
fieldLabel: "Hobby",
allowBlank:false,
bind:{
disabled: "{containerHidden}"
}
}
]
}
]