2015-06-19 4 views
1

То, что я пытаюсь сделать, - это динамически добавлять контейнер в панель при нажатии кнопки.Extjs 5.1 Динамическое добавление контейнера в панель

первый экземпляр контейнера добавляется и его можно увидеть в panel.items.length

второй экземпляр года panel.items.length не меняется. но панель можно увидеть в dom и на экране.

Просто хотел знать, почему panel.items.length не увеличивается. Это ошибка?

Скрипач ссылка https://fiddle.sencha.com/#fiddle/p3u

Проверка на линии:

console.log (qitems);

ниже отладчик; он задан для вопросовblock.items.length, о котором я говорю.

+1

Предлагаем Вам прочитать документы о 'renderTo'. «Не используйте эту опцию, если компонент должен быть дочерним элементом контейнера. Администратор компоновки контейнера несет ответственность за визуализацию и управление дочерними элементами». –

ответ

1

Удалите itemId с QuestionTemplate и удалите renderTo из нового экземпляра.

Ваш обработчик щелчка должен выглядеть следующим образом:

listeners: { 
    'click': function(button) { 
     var questionPanel = button.up('form').down('#questionsblock'), 
      qitems = questionPanel.items.length, 
      questiontemplate = Ext.create('QuestionTemplate', { 
      qid: qitems, 
      questiontype: 'text' 
     }); 
     console.log(qitems); 
     questionPanel.add(questiontemplate); 
     questionPanel.doLayout(); 
    } 
} 

Проверить эту скрипку: https://fiddle.sencha.com/#fiddle/p47

+0

спасибо, решение, которое вы дали, устранило мою проблему. еще раз спасибо. – nilesh