Backbone.js - просмотр в представлениях и управление событиями
Какой хороший способ организовать представления? Скажем, у меня есть div, который будет содержать представление с точки зрения пользователей в панели администратора - будет список пользователей вместе с параметрами, чтобы выбрать, сколько из них будет отображаться за раз, параметры сортировки, какая страница будет включена, фильтры, и т.д...
Я хотел бы, чтобы внешний вид содержал все, кроме таблицы и данных? А затем внутренний вид, содержащий таблицу (вместе с данными)? И будет ли у этой страницы вид на страницу? И как будет выглядеть изображение с разбивкой по страницам, чтобы обновить представление пользователя? Я просто смущен тем, как упорядочить представления, сохраняя при этом разные события, запускать другие представления в render()
/collections в fetch()
.
Итак, базовая иерархия будет выглядеть так:
- User View
- Table
- List of Users
- Pagination
- List of available numbers to click
- Filters
- Possible filters to apply to the data
Однако щелчок фильтра или номера в разбивке на страницы должен иметь возможность получить коллекцию в fetch()
новых данных и обновить представление;
Ответы
Ответ 1
Я второй dogenpunk. У меня будет одна коллекция пользователей/просмотр. Потому что вся иерархия, о которой вы описали выше, относится к одной пользовательской коллекции. Все его функции управляют этой коллекцией, а затем вы повторно просматриваете представление пользователя.
У вас может быть второй пользовательский вид, один единственный пользователь, привязанный к модели, если вы хотите применить изменения к серверу только для этого пользователя.
Ответ 2
Я стараюсь как можно больше отражать структуру MVC на стороне сервера.
Все, что можно добавить в плагин, я делаю так, а затем я держу эти плагины в отдельном месте для контроллеров, которые вызывают плагины. Таким образом, в вашем случае представление таблицы для списка пользователей будет проводиться либо в плагине таблицы, либо, возможно, в модуле "users", если бы это был код, который я действительно использовал только один раз.
Если мне нужно переопределить вывод плагина, я сохраню представление внутри папки модуля.
То, что я пытаюсь избежать, заключается в хранении представлений только по типу HTML внутри них, поэтому я не буду хранить представление модуля как "таблицу", потому что это будет запутывать, если позже оно изменится на список. Очевидно, если у меня есть плагин "table", тогда представление для него будет таблицей, но затем изменение вида JavaScript означает просто изменение вызова плагина из "таблицы" в "список" в любом случае.
Ответ 3
Мои 2 цента на ваш оригинальный вопрос. Если вы действительно хотите сделать это MV *, разбиение на страницы было бы точкой зрения, ваша таблица была бы представлением. И попросите свою коллекцию отправить (триггер) события, чтобы изменить ваше мнение. И еще вопросы, которые я задал себе, это то, что повлияет на изменение моей коллекции? Например, в вашем случае я не думаю, что изменения коллекции повлияют на ваш пользовательский интерфейс напрямую, это влияет только на таблицу и разбивку на страницы.