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 *, разбиение на страницы было бы точкой зрения, ваша таблица была бы представлением. И попросите свою коллекцию отправить (триггер) события, чтобы изменить ваше мнение. И еще вопросы, которые я задал себе, это то, что повлияет на изменение моей коллекции? Например, в вашем случае я не думаю, что изменения коллекции повлияют на ваш пользовательский интерфейс напрямую, это влияет только на таблицу и разбивку на страницы.