Показать сообщение отдельно
  #1 (permalink)  
Старый 07.12.2017, 11:59
Новичок на форуме
Отправить личное сообщение для small75 Посмотреть профиль Найти все сообщения от small75
 
Регистрация: 07.12.2017
Сообщений: 2

Ext4.2 Как в конструкторе объединить конфигурацию при наследовании
Имеем Extjs 4.2
Как мне объединить дефолтную конфигурацию в описании класса и передаваемую конфигурацию при создании объекта?
Проблема в свойствах класса, которые содержат подобъекты со своими конфигурациями.
Пример кода ниже. Основная проблема с "proxy".
Как правильно объединять конфигурации?

Ext.define('Adm.EmptyModel', {
    extend: 'Ext.data.Model',
});

Ext.define('Adm.AclMain', {
    extend: 'Ext.data.Store',
    model: 'Adm.EmptyModel',
    title: 'AclMain',
    autoSync: true,
    autoLoad: false,
    //autoLoad: true,
    proxy: {
        //api: {},
        type: 'ajax',
        reader: {
            type: 'json',
            root: 'data',
            idProperty: 'ID',
            messageProperty: 'message',
            successProperty: 'success'},
        writer: {
            type: 'json',
            root: 'data',
            encode: true
        }
    },
    constructor: function (config) {
        var me = this;
      //me.callParent(); -- только предустановленные при описании класса поля
        //Ext.apply(me, config); -- перезаписывает свойство proxy, но мне надо объединить конфигурации
        //Ext.applyIf(me, config); -- не объединяет конфигурации свойства proxy, оставляется только предустановленное
        //me.callParent(arguments);-- перезаписывает свойство proxy, но мне надо объединить конфигурации
    }});

var store_users = Ext.create('Adm.AclMain', {
    storeId: 'store_users',
    title: 'Users',
    fields: ['ID', 'NAME', 'FULL_NAME', 'EMAIL', 'PHONE'],
    proxy: {
        api: {
            read: 'd_users.php',
            update: 'd_users_edit.php?action=update',
            create: 'd_users_edit.php?action=create',
            destroy: 'd_users_edit.php?action=delete'
        }
    }
});
Ответить с цитированием