Мое веб-приложение, написанное на Backbone.js, содержит несколько режимов.Каждый режим описывает, какие модели и виды активны в данный момент.Изменяя параметр mode в хэше (#), я переключаюсь между режимами и создаю экземпляры необходимых базовых моделей и представлений.
Кажется логичным также описать предпочтительный макет и внедрить html-код контейнера на уровне режима.
Допустим, в режиме «PopulationPyramidMode» есть модель и 3 представления Backbone.«HeaderView» должен занимать 30 пикселей по вертикали.«SidebarView» должен занимать 200 пикселей по горизонтали, а «CanvasView» должен заполнять влажность экрана и масштабироваться при событиях изменения размера.
Чтобы еще больше усложнить ситуацию, CanvasView содержит визуализацию, которую необходимо повторно визуализировать визменить размер, то есть x / y-шкалы должны быть пересчитаны.
Итак, каков наилучший подход к этому?
1) Где должна быть логика расположенияgo?
- В отдельном layoutManager - и в таком случае как?
- Должно ли каждое представление описывать свой предпочтительный размер и т. д.?
2) Как добавить необходимый HTML / CSS для моих макетови переключаться между ними?
<!-- Layout 1 -->
<div id="header"></div>
<div id="sidebar"></div>
<div id="canvas"></div>
<!-- Layout 2 -->
<div id="header"></div>
<div id="canvas"></div>
Спасибо за любые конкретные советы, а также за макеты JavaScript в целом!