Метод визуализации делает не что иное, как добавление HTML в DOM с помощью методов jQuery html
или append
. Где вы выбираете вызов метода рендеринга в представлении, является архитектурным выбором.
Считается, что магистраль применяет шаблон MV *, где модели привязаны непосредственно к виду.
Таким образом, представление будет отображаться при создании экземпляра и иметь возможность отображать себя при изменении модели.
Тем не менее, Backbone оставляет много решений разработчику и представляет собой гибкую библиотеку. Нет ничего, что технически мешает вам использовать объекты управления, которые управляют потоком представлений; как таковой, другой объект может создавать и повторно отображать представление.
var view = new Bb_View();
view.render();
В конце концов, render
это просто метод на представлении, и вы можете определить свои собственные методы. Примером тому, почему я бы назвал пользовательские методы в представлении вне представления, является то, что я продолжаю ссылаться на массив представлений.
Как событие происходит, я просматриваю представления, я могу добавить некоторые условия, а затем вызвать пользовательский метод для определенных представлений на основе условия.
Я думаю, что ответ «хорошая практика». То, что у вас есть, будет работать, но лучше убедиться, что функция «initialize» имеет только одну ответственность - инициализацию представления. Эта ясность будет погашаться вовремя! Что касается того, когда - множество более крупных SPA инициализируют представления на одном этапе, а затем визуализируют базовый шаблон и визуализируют представления поверх этого позже. Я лично считаю, что «идеи самореализации» редко бывают хорошей идеей. – olan
Вижу. Итак, когда/где должно быть установлено свойство this.collection', если оно не было создано? – pushkin
'this.collection' идеально подходит там, где он есть. Вы просто получите «var lib = new LibraryView(); lib.render() '. – olan