Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Ext.data.TreeStore - Размещение разнотипных элементов. (https://javascript.ru/forum/extjs/56717-ext-data-treestore-razmeshhenie-raznotipnykh-ehlementov.html)

khusamov 30.06.2015 23:01

Ext.data.TreeStore - Размещение разнотипных элементов.
 
Здравствуйте!

Можно ли в хранилище класса Ext.data.TreeStore размещать элементы созданные на основе РАЗНЫХ классов моделей?

AirGraph 30.06.2015 23:39

Конечно. Создаем модель SomeModel, в модели указываем: entityName: 'someEntity', в объекте создаем свойство entity: 'someEntity' и все что угодно кроме этого свойства. Ридеру указываем typeProperty: 'entity'. Таким образом ридер понимает, что объект - экземпляр SomeModel и при создании node или leaf record так или иначе будет типа SomeModel. Примерно так у меня в дереве временами до десятка разных моделей. Все работает.

khusamov 01.07.2015 12:58

не дорассказали что дальше происходит, когда создаем объект модели SomeModel2...

Или все модели надо наследовать от одной общей?

novikov 03.07.2015 11:00

С сервера, кажется, должен приходить JSON в котором у каждой записи есть дополнительное поле, содержащее имя модели, в которую эта запись должна попасть. Название дополнительного поля указывается в typeProperty.

AirGraph 03.07.2015 23:15

Так они все, как ни крути, растут из Ext.data.model. У меня так и сделано. Есть Base, в которой указан только namespace. Есть TreeBase, на основе Ext.data.TreeModel, в которой требуется Base для того же namespace, а все остальные растут из TreeBase.

Я это не сам придумал, я не такой умный :-), просто подглядел в каком-то примере, не помню в каком.


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