Когда DOM будет готов в представлении Backbone

Я разрабатываю веб-приложение с backbone.js и marionette.js. Теперь у нас есть

$( document ).ready(function() {
// Handler for .ready() called.
}); 

Итак, если я хочу написать код, когда дом будет готов в Backbone, в какой функции я должен написать, инициализировать, визуализировать, onDOMRefresh.


person Nikhil Agrawal    schedule 09.10.2013    source источник
comment
Модуль истории Backbone имеет метод start(), который запускает ваше приложение. Не забудьте сначала настроить маршруты   -  person Bojangles    schedule 09.10.2013
comment
Если вы добавляете свой шаблон в render(), то напишите готовый код документа после добавления вашего шаблона.   -  person user10    schedule 09.10.2013
comment
@ user10 Я не привязан к рендерингу, но я хочу знать, каким методом я могу написать код, который без основы я писал в document.ready.   -  person Nikhil Agrawal    schedule 09.10.2013
comment
Ничего подобного в бэкбоне по умолчанию нет. Тебе решать. Если вы используете маршрутизаторы, вы будете переключаться между разными представлениями. Таким образом, вы должны вызывать вещи в методе рендеринга представления. Если вы не используете маршрутизаторы, то вы можете начать инициализировать свои основные представления внутри document.ready.   -  person user10    schedule 09.10.2013
comment
Почему бы вам просто не сохранить это, чтобы знать, когда DOM будет готов? Backbone требует jQuery, поэтому я не вижу никаких проблем.   -  person Loamhoof    schedule 09.10.2013
comment
Вы должны продолжать использовать тот же $( document ).ready Backbone, просто изменит способ написания другого кода. Если вы используете Backbone.Router и определенный маршрутизатор для вашего приложения, Backbone.History.start() начнет использовать эти методы.   -  person Ravi Hamsa    schedule 09.10.2013


Ответы (2)


Я думаю, вы ищете метод onShow. Когда Marionette вызывает этот метод, элементы DOM готовы для доступа.

person Kalpers    schedule 09.10.2013

Если вы работаете с Marionette, то методы, о которых вы спрашивали, работают следующим образом:

initialize вызывается при первом появлении представления. Это отличное место для обработки любых параметров, которые вы можете передавать из родительских представлений, настроек по умолчанию и т. д.

onRender вызывается каждый раз, когда в этом представлении запускается событие "рендеринг". Событие "рендеринга" может быть инициировано при первом создании экземпляра представления, а также в любое время, когда представление вызывает .render() для себя (вы можете сделать это, когда хотите обновить содержимое в этом конкретном представлении). onRender может вызываться несколько раз в течение жизни представления.

onShow вызывается каждый раз, когда запускается событие "show" из родительского макета. Событие "show" запускается регионом внутри макета, вызывающим .show(subView). onShow будет вызываться только один раз за время существования представления.

onDomRefresh вызывается после повторного рендеринга представления и его нового содержимого в безопасном месте в DOM.

person Avery S.    schedule 19.11.2013