Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.02.2014, 15:49
Аватар для sphere89
Интересующийся
Отправить личное сообщение для sphere89 Посмотреть профиль Найти все сообщения от sphere89
 
Регистрация: 02.04.2013
Сообщений: 15

Организация данных в Backbone
Добрый вечер коллеги. Меня интересует вопрос о организации данных в Backbone. К примеру у вас рабочий день, новый проект, новая задача. Начальство ставит задачу создать проект напоминающий TODO, только сюда добавляются проекты, у которых есть TODO. Суть задачи: на роуте todom/index - рисовать левую колонку со списком проектов, однако этот список и каждый элемент - (проект) знает о том, сколько у него TODO. Так-же при наведении на строку проекта, ховером появляется крестик, нажатие по которому удаляет из коллекции проект и все с ним связанные TODO с помощью всплывающего попапа.

Я новичок в Backbone, описать модель которая представляет 1 элемент и view этого элемента и реализовать подобное мне не составляет труда. Но... Задачу я описал, в течении двух дней я пытался средствами Backbone создать абстрактную задачу, которая выше. Но к сожалению каждый раз попадал в тупик, так как создавал по две модели, для проектов и туду, в роутере создавал отдельные коллекции, у коллекции реализовал методы получить кол. тодо проекта по ID, и.т.д. Отправлял собранные структуры данных во View. В целом логика получается падает на контроллер, никак не на модель, появляются проблемы с валидацией каждой модели, обновления, но до сервера я не дошел.

Суть топика, уважаемые более опытные разработчики поделитесь опытом. Где вы описываете логику по отдельным моделям, как в моей абстрактной задаче правильнее нарисовать каждый проект и передать ему кол. TODO. (Где нужные методы использовать в отношении MVC). Уходить ли к вложенным моделям? Я отталкиваюсь от того, что не всегда на клиенте через REST апи приходят готовые данные с помощью которых можно легко и быстро написать модельки. Nested Models, Views. Иногда надо и самим поработать над данными, а затем их отравить во View и отдать на шаблонизацию, с подпиской на события итд итп.

Еще вопросы:

1) Удалили во вложенной вью, одну вьюху на которой были подписаны события, сами обработчики не удаляли - Что делать? Клиент говорит что у него поп-ап всплывает не понятно откуда и данные сами обновляются.

2) Вручную добавили нужные атрибуты в каждую модель, после этого fetch сломался, биндинг сломался, ответ очевиден? set, get, add, remove?

3) Во вложенных вьюхах делегируете события на контейнер?

4) Если вы пишете методы в коллекции, где и как и для чего их используете?

Поискав решения, нашел дополнение к Backbone - Backbone relations. Помогает создавать реляционное отношение между моделями 1:1, 1:to many. - В целом решает проблему вложенных данных полученных с API, которые предстоит разбить на отдельные модели.

Backbone.Marionnete - Посмотрел мельком, увидел что помогает организовать более удобно вложенные View, распределить на странице отдельные регионы. Решает проблемы с призраками событиями. Вложенные модели? Еще не смотрел, решает ли он это или нет.

Вот каркас написал небольшой, где использую общий вью в котором есть контейнеры для левой панельки, правой, панели кнопок. Пытаюсь понять как две сущности TODO и Project соединить. Код совсем на стадии каркаса. http://jsfiddle.net/6XdCk/

- Из когда не понятно, две модели - две коллекции. Вью для строки в котором каждый проект, вью списка проектов - где много экземпляров одного проекта. При этом модель или коллекция должна знать о количестве TODO (В рамках этой задачи можно пройтись по каждому проекту и каждому TODO и связать их по общему ключу ProjectID). - Но результат залазиет во VIEW, получается связанность, ломается теория MVC. Вообщем говно... и дальше писать не получается и не хочется. Вот сижу и ломаю голову как это организовать.

Последний раз редактировалось sphere89, 09.02.2014 в 15:55.
Ответить с цитированием
  #2 (permalink)  
Старый 16.04.2015, 17:20
Интересующийся
Отправить личное сообщение для yo-y0 Посмотреть профиль Найти все сообщения от yo-y0
 
Регистрация: 16.09.2011
Сообщений: 16

Какой хороший вопрос. Я тоже не могу найти ответа.
Но мне кажется что нужно вычеркнуть из сознания аббревиатуру MVС которое в BB трансформировалось непонятно во что. Контроллер размазан по MV да еще и по роутеру.
Ответить с цитированием
  #3 (permalink)  
Старый 02.05.2015, 04:20
Новичок на форуме
Отправить личное сообщение для iyntx Посмотреть профиль Найти все сообщения от iyntx
 
Регистрация: 04.01.2011
Сообщений: 3

ТЕБЕ НИКТО НЕ ПОМОЖЕТ
тебе никто не поможет. Научись оформлять свой код в готовые примеры а не просто жс файл в жсфидле, который не работает.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с асинхронной передачей данных через POST Kapitan79 AJAX и COMET 2 28.12.2013 09:47
Не понимаю JavaScript. Как сделать ожидание события загрузки данных? xintrea AJAX и COMET 7 01.06.2013 16:18
отправка данных из формы и вывод полученных данных sxe jQuery 2 20.05.2013 23:34
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 11:00
Изменение окраски строк таблицы, исходя из данных? Space-06 Events/DOM/Window 4 14.02.2012 19:32