Как поменять frame у компонента grid?
У grid-а есть конфиг frame. Я его выставляю как-то при создании grid-а. И потом, хочу его изменить. Делаю как по инструкции сказано:
grid.setFrame(false) И не тут-то было. Такого метода нету-с. И никакого иного метода, который помог бы поменять это свойство тоже нету. Или не нашел. Кто знает как поменять значение этого поля? |
Цитата:
Цитата:
например: setFrame: function(v) { if(v === this.frame) return; this.frame = v; var ui = 'default'; // TO-DO this.setUI(ui + (v ? '-framed' : '')); } В 4.1 работать будет правельно, в версиях ниже - коряво, но если метод setUi доработать (по примеру 4.1) то проблем вообще не будет. |
Цитата:
http://docs.sencha.com/ext-js/4-0/#!/guide/class_system Цитирую: Цитата:
|
а причем здесь это?
неужели вы думаете что если даже не указывать свойство, конструктор создаст соответствующие геттер и сеттер? При чем именно в нужном виде? Хорошо, допустим мы укажем нужное нам свойство в конфиге: Ext.define('MyPanel', { extend: 'Ext.panel.Panel', config: { frame: true } }); При создании объекта у него будут сгенерированы методы getFrame() и setFrame(). var panel = Ext.create('MyPanel', { renderTo: Ext.getBody() }); console.log(panel.getFrame); // 'function' console.log(panel.setFrame); // 'function' Да, мы видим что они действительно созданы. Геттер как и положено возвращает текущее значение свойства, сеттер устанавливает заданное (параметром). Но вот ведь незадача (!) внешний вид панели ничуть не изменится при вызове setFrame. Почему? Потому что он определяется во время инициализации (в зависимости от значения свойства frame присваиваются классы соответствующим компонентам). И чтобы динамически изменить внешний вид, как вы хотите, нужно как раз изменить классы компонентов и сгенерированный метод setFrame вам нисколько не поможет. |
Цитата:
Я уже на многие такие конфиги наткнулся. Наверное методы apply* для них не прописаны еще. Типа потом допишут. За костыль спасибо, мне еще придется разобраться с методом setUI, назначение которого мне не совсем пока ясно. Придется пока на костылях ходить, ждать когда они эти apply* допишут. |
Цитата:
А я имел ввиду класс, который создан в Ext. В нем как раз метода setFrame даже не определен почему-то, хотя конфиги вроде как есть по документации. |
Часовой пояс GMT +3, время: 14:05. |