Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Правильное использование дублирующего компонента. (https://javascript.ru/forum/extjs/76119-pravilnoe-ispolzovanie-dubliruyushhego-komponenta.html)

Ambassador 06.12.2018 18:26

Правильное использование дублирующего компонента.
 
Приветствую.
В своем приложении мне требуется использовать два компонента дерева.
Они должны быть полностью одинаковые, но только первое должно получать и обрабатывать данные из одной таблицы, а второе с другой.
Основной компонент дерева (путь app/view/QuestionTree.js ):
Ext.define('Fiddle.view.QuestionTree', {
    extend: 'Ext.tree.Panel',
    alias: 'widget.questiontree',
    xtype: 'questiontree',
    store: 'QuestionTreeStore',
    rootVisible: true,
    .....
 

});


Образую от него класс QuestionTreeTwo (путь app/view/QuestionTreeTwo.js)
Ext.define('Fiddle.view.QuestionTreeTwo', {
    extend: 'Fiddle.view.QuestionTree',
    alias: 'widget.questiontreetwo',
    xtype: 'questiontreetwo',
  });

Возможно ли сделать что бы их общий стор мог понимать какой именно компонент его использует?
Или необходимо создавать свой собственный стор и модель для второго дерева?
В оригинале сам стор у меня выглядит так:
var urlRoot =  'app/data/maindata.php?model=QuestionTree&method=';
Ext.define('Survey.store.QuestionTreeStore', {
    extend: 'Ext.data.TreeStore',
    model: 'Survey.model.QuestionTree',
    autoLoad: true,
    autoSync: true,
    //storeId: 'QuestionTree',
    proxy: {
        type: 'ajax',
        noCache: false,
        api: {
            create:     urlRoot + 'Create',
            update:     urlRoot + 'Update',
            destroy:    urlRoot + 'Destroy',
            read:       urlRoot + 'Read'
        },
        reader: {
            type: 'json',
            rootProperty: 'children',
            successProperty: 'success'
        },
        writer:{
            type: 'json',
            encode: true,
            writeAllFields: true,
            rootProperty: 'data',
            allowSingle: false,
        }
    },
    root: {
        text: 'Вопросы',
        expanded: true,
        id_parent: -1

    }
});

В maindata.php производятся операции crud с проверкой для model=QuestionTree
Ссылка на пример в fiddle
Спасибо


Часовой пояс GMT +3, время: 22:03.