ext js привязывает привязываемое свойство родителя к ребенку - PullRequest
0 голосов
/ 13 марта 2020

У меня есть контейнер с одним или несколькими полями формы. Я хотел бы связать свойство hidden родительского контейнера со свойством disabled дочерних элементов. Как мы это делаем?

У меня есть скрипка здесь для иллюстрации. У меня есть поля в моем дополнительном контейнере, которые являются обязательными. Поэтому, когда они видны, они должны быть обязательными, а когда скрыты, они должны быть необязательными. Я знаю, что могу добавить обработчик, который может установить allowBlank: true, но это кажется утомительным.

Ответы [ 2 ]

1 голос
/ 13 марта 2020

Зарегистрируйте скрытое состояние родителя в viewModel, чтобы получить состояние родителей в дочернем компоненте.

измените свойство containerHidden в viewModel на true или false, чтобы проверить его. вот скрипка

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}"
                }

            }
        ]
    }
]
0 голосов
/ 13 марта 2020

Вы можете сделать это с помощью скрытия \ показа слушателей скрипка

...