ExtJS: события показа / скрытия не каскадируются? - PullRequest
0 голосов
/ 18 марта 2011

Есть ли известное ограничение (или ошибка?) В ExtJS 3.2.x, когда такие события, как show / hide, не всегда могут быть расположены каскадом вниз по иерархии панелей?

У меня есть панель, которая вложена виерархия других панелей.Событие "show" на этой панели запускается только при первом показе.Однако событие «show» на панели «root» срабатывает каждый раз.

Это сообщение на форуме , похоже, указывает на то, что события не каскадируются в 3.x.Может кто-нибудь подтвердить или предложить больше информации?

Спасибо!

Ответы [ 2 ]

1 голос
/ 19 марта 2011

Вы можете каскадно использовать метод cascade, если компонент, с которым вы работаете, поддерживает его (Ext.layout.Panel s делает). Например, если у вас была панель, содержащаяся внутри панели, и вы хотели скрыть дочернюю панель, когда родительский элемент был скрыт, вы можете попробовать это:

validXTypes = ['panel'] //include any other valid types

parentPanel.cascade(function () {
    //if this component can be hidden...
    if (validXTypes.indexOf(this.xtype) != -1) {
        //...then hide it!
        this.hide();
    }
});
1 голос
/ 18 марта 2011

Показать / скрыть события действительно не каскадно.Причина в том, что show / hide фактически является манипуляцией dom и не имеет ничего общего с иерархией компонентов.

Если компонент содержит подкомпоненты, они являются потомками содержащего компонента и, следовательно, также скрыты, если узел dom содержащих компонентов скрыт.Но это всего лишь побочный эффект иерархии dom компонентов, а не иерархии компонентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...