2016-02-27 1 views
0

В ExtJs 6 classic у меня есть Ext.panel.Panel, к которому я добавил детей, некоторые из этих детей динамически создаются. Панели и контейнеры. Я не сохранять ссылки на эти контейнеры и удалить их из родительской панели (это) следующим образом:Почему недавно добавленные компоненты не отображаются после удаления других компонентов с панели extjs

if (this.myChildPanels.length > 0) { 
     for (var i = this.myChildPanels.length - 1; i >= 0; i--) { 
      this.remove(this.myChildPanels[i], true); 
     } 
     this.remove(this.queryById('finalPanel'), true); 
     this.myChildPanels= []; 
    } 

Эти дочерние панели действительно исчезают и больше не будет отображаться, как и ожидалось.

Однако при попытке добавить новые контейнеры обратно в родительской панели (это), новые панели не отображаются

this.add(Ext.create('Ext.container.Container', { 
      width: '200px', 
      height: '400px', 
      layout: { 
      type: 'fit' 
      }, 
      items: [ { 
      xtype: 'label', 
      text: 'Some stuff' 
      }] 
    )); 

Родитель использует пригодное расположение, есть ли методы, которые мне нужно позвонить на родительской панели после удаления и перед добавлением к ней новых компонентов? Динамическое добавление работает в первый раз, но не после удаления компонентов, которые были динамически добавлены (с помощью нажатия кнопки).

ответ

0

this.removeAll() Функция удаления всех дочерних элементов на панели. после добавления некоторых новых элементов попробуйте вызвать функцию updateLayout. если это решение не поможет представить пример скрипта, воссоздающий вашу проблему для работы.