Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.12.2015, 14:11
Аватар для Infarch
Профессор
Отправить личное сообщение для Infarch Посмотреть профиль Найти все сообщения от Infarch
 
Регистрация: 06.06.2014
Сообщений: 292

Как использовать экземпляр Ext.data.Model в дереве?
Здравствуйте.

Возникла у меня одна идея, но для ее реализации понадобилось надругаться над трипанелью. Захотелось мне передать в виджет экземпляр обычной модели (не TreeModel!) и использовать его в качестве рута дерева. Для чего? Там будет форма редактирования, хочу чтоб изменения сразу отображались в дереве. Ну и чтоб прочие компоненты отображали изменения в модели.

Для начала попробовал решить "в лоб": https://fiddle.sencha.com/#fiddle/135p . Так не заработало. Если модель унаследовать от TreeModel то работает, но мне это кажется не совсем правильным с точки зрения архитектуры, ибо модель используется в куче других мест, где деревьев нет.

Подскажите, друзья, как лучше сделать? Забить на архитектуру и унаследоваться от ДеревоМодели? Или какое нибудь другое хитрое решение?
Ответить с цитированием
  #2 (permalink)  
Старый 02.01.2016, 10:24
Профессор
Отправить личное сообщение для novikov Посмотреть профиль Найти все сообщения от novikov
 
Регистрация: 19.11.2012
Сообщений: 178

Экспериментировал с чем-то похожим в 5-ой версии:
http://extjstricks.blogspot.ru/2015/04/tree-grid.html
Ответить с цитированием
  #3 (permalink)  
Старый 03.01.2016, 12:53
Аватар для Infarch
Профессор
Отправить личное сообщение для Infarch Посмотреть профиль Найти все сообщения от Infarch
 
Регистрация: 06.06.2014
Сообщений: 292

Вы все равно используете TreeModel, пусть и не наследуетесь от нее явно. А меня интересовало можно ли использовать обычную модель. Но похоже что нельзя...
Ответить с цитированием
  #4 (permalink)  
Старый 05.01.2016, 02:29
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Если посмотрите в исходник TreeModel, то увидите, что он почти пустой - фактически вся работа делается в class callback, который декорирует тело класса модели свойствами NodeInterface. Можете повторить в своём коде, создав обычную модель Foo и унаследовать от неё декорированную FooTree.

Или можно использовать mixin с набором полей и прочими свойствами, общими для обычной и деревянной моделей. Выглядеть всё равно будет малость кривовато и потребует разъяснений в коммментариях, так что я бы сделал а-ля TreeModel и не сильно заморачивался чистотой архитектуры.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правельно использовать плагин jquery.cookie ivanfom jQuery 5 21.01.2015 16:53
Как использовать innerText yvarvara Общие вопросы Javascript 29 09.11.2009 05:54
Как заставить браузер использовать закэшированное изображение? fog Общие вопросы Javascript 5 13.08.2009 15:40
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30
Как поменять местами элементы в дереве элемента родителя? rar11 Events/DOM/Window 8 01.04.2009 18:53