Ext.data.TreeStore - Размещение разнотипных элементов.
Здравствуйте!
Можно ли в хранилище класса Ext.data.TreeStore размещать элементы созданные на основе РАЗНЫХ классов моделей? |
Конечно. Создаем модель SomeModel, в модели указываем: entityName: 'someEntity', в объекте создаем свойство entity: 'someEntity' и все что угодно кроме этого свойства. Ридеру указываем typeProperty: 'entity'. Таким образом ридер понимает, что объект - экземпляр SomeModel и при создании node или leaf record так или иначе будет типа SomeModel. Примерно так у меня в дереве временами до десятка разных моделей. Все работает.
|
не дорассказали что дальше происходит, когда создаем объект модели SomeModel2...
Или все модели надо наследовать от одной общей? |
С сервера, кажется, должен приходить JSON в котором у каждой записи есть дополнительное поле, содержащее имя модели, в которую эта запись должна попасть. Название дополнительного поля указывается в typeProperty.
|
Так они все, как ни крути, растут из Ext.data.model. У меня так и сделано. Есть Base, в которой указан только namespace. Есть TreeBase, на основе Ext.data.TreeModel, в которой требуется Base для того же namespace, а все остальные растут из TreeBase.
Я это не сам придумал, я не такой умный :-), просто подглядел в каком-то примере, не помню в каком. |
Часовой пояс GMT +3, время: 17:42. |