Как использовать экземпляр Ext.data.Model в дереве?
Здравствуйте.
Возникла у меня одна идея, но для ее реализации понадобилось надругаться над трипанелью. Захотелось мне передать в виджет экземпляр обычной модели (не TreeModel!) и использовать его в качестве рута дерева. Для чего? Там будет форма редактирования, хочу чтоб изменения сразу отображались в дереве. Ну и чтоб прочие компоненты отображали изменения в модели. Для начала попробовал решить "в лоб": https://fiddle.sencha.com/#fiddle/135p . Так не заработало. Если модель унаследовать от TreeModel то работает, но мне это кажется не совсем правильным с точки зрения архитектуры, ибо модель используется в куче других мест, где деревьев нет. Подскажите, друзья, как лучше сделать? Забить на архитектуру и унаследоваться от ДеревоМодели? Или какое нибудь другое хитрое решение? |
Экспериментировал с чем-то похожим в 5-ой версии:
http://extjstricks.blogspot.ru/2015/04/tree-grid.html |
Вы все равно используете TreeModel, пусть и не наследуетесь от нее явно. А меня интересовало можно ли использовать обычную модель. Но похоже что нельзя...
|
Если посмотрите в исходник TreeModel, то увидите, что он почти пустой - фактически вся работа делается в class callback, который декорирует тело класса модели свойствами NodeInterface. Можете повторить в своём коде, создав обычную модель Foo и унаследовать от неё декорированную FooTree.
Или можно использовать mixin с набором полей и прочими свойствами, общими для обычной и деревянной моделей. Выглядеть всё равно будет малость кривовато и потребует разъяснений в коммментариях, так что я бы сделал а-ля TreeModel и не сильно заморачивался чистотой архитектуры. |
Часовой пояс GMT +3, время: 04:47. |