2013-09-11 3 views
0

Многие примеры и учебные пособия Backbone.js иллюстрируют отображение коллекции моделей с помощью CollectionView, который в своей собственной функции render() выполняет цикл над элементами и создает новый ItemView для каждой модели (каждый из которых затем отображается).Лучшая коллекция CollectionView в Backbone.js?

Это означает, что вы не можете просто вызвать render() в своей коллекции, когда что-то об этом изменится - вы должны позаботиться о том, чтобы сначала уничтожить/развязать предыдущие представления.

Это полное разрушение/восстановление объектов вида чувствует себя тяжело, когда в противном случае простой подход к управлению списком заключается в том, чтобы сказать «когда что-то об этом списке меняется, повторно его отображать». Более сложный (если возможно, более эффективный) подход более конкретно реагирует на конкретные события (например, «выбранный элемент») и настраивает отдельные представления элементов.

Есть ли общепринятая мудрость об этом для работы с коллекциями моделей?

ответ

2

Если вы готовы добавить другую библиотеку, чтобы ваш микс, проект Backbone.Marionette добавляет несколько классов, чтобы иметь дело со сложностью сбора мнений и управления ими вид иерархии:

https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.collectionview.md

Если вы предоставляете Collection в CollectionView, он будет синхронизироваться и добавлять/удалять отдельные дочерние представления по мере добавления или удаления моделей в коллекции. Я нашел это, чтобы помочь очень.

Если вы хотите использовать чистую основу, вы все равно можете взглянуть на источник коллекции Collection Marionette, чтобы увидеть общее соглашение, но вы, вероятно, в конечном итоге переработаете много этой функции.

Смежные вопросы