Показать сообщение отдельно
  #1 (permalink)  
Старый 27.03.2016, 12:26
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

Динамическая замена Ext из комбобокса
Здравствуйте, подскажите пожалуйста как правильно реализовать смену Ext-темы из комбобокса? я сделал так:
function changeTheme(self) {

    var me = self? self :this;
    var theme_file = me.getValue();
    if (theme_file==="default") {
    	theme_file = '/theme-classic/resources/theme-classic-all.css'
    }
    Ext.util.CSS.swapStyleSheet('theme', 'ext/build/classic/' + theme_file);
    new Ext.util.Cookies.set('ext-theme', theme_file);

}

Ext.define('MyApp.view.main.myCombo', {
    xtype: 'myCombo',
    extend: 'Ext.form.Panel',
    title: 'Мой комбобокс',
    width: 500,
    layout: 'form',
    viewModel: {},
    frame: true,

    requires: [
        'MyApp.store.States',
    ],
    store: {
        type: 'mycombo'
    },
    items: [{
        xtype: 'fieldset',
        layout: 'anchor',
        items: [{
            xtype: 'component',
            anchor: '100%',
            html: [
                '<h3>Locally loaded data</h3>',
                '<p>This ComboBox uses local data from a JS array</p>'
            ]
        },  {
            xtype: 'combobox',
            reference: 'states',
            publishes: 'value',
            value: Ext.util.Cookies.get("ext-theme") || "default",
            fieldLabel: 'Выберите тему:',
            displayField: 'Title',
            valueField: 'fileName',
            listeners: {
                select: function(){
                    changeTheme(this);
                    location.reload();
                },
                load:function(box) {

                       changeTheme(this);
                   },
                beforerender:function(box) {

                       changeTheme(this);
                   }
            },
            anchor: '-15',
            store: {
                type: 'states'
            },
            minChars: 0,
            queryMode: 'local',
            typeAhead: true
        }]
    }]
});

Тема меняется, но стили предыдущей темы не удаляются, вследствие чего страдает внешний вид активной темы
Ответить с цитированием