Марионетка — инициализировать событие, которое не запускается

#javascript #backbone.js #marionette

#javascript #backbone.js #марионетка

Вопрос:

У меня есть базовое приложение для марионеток, которое выглядит как:

 var App = new Marionette.Application();

App.on('initialize:after', function () {
    console.log('init');
});

App.start();
  

Когда я запускаю это, на консоль ничего не выводится. Однако, если я добавлю

 App.on('start', function () {
    console.log('start');
});
  

затем оно печатается start . Кто-нибудь знает, как заставить первое работать?

Ответ №1:

Какую версию marionette вы используете?

initialize:after было переименовано в start после версии 1.0.0. Посмотрите список изменений.

Комментарии:

1. Я использовал 2.0.1 — но, по-видимому, гораздо более старый учебник. Спасибо!

Ответ №2:

В марионетке 3 события, которые в данный момент запускаются, являются:

  • "before:start" / onBeforeStart : запускается непосредственно перед запуском приложения и перед выполнением инициализаторов.
  • "start" / onStart : срабатывает после запуска приложения и после выполнения инициализаторов.

 var MyApp =  ContactManager = new Backbone.Marionette.Application();

MyApp.on("before:start", function(options){
    options.moreData = "Yo dawg, I heard you like options so I put some options in your options!";
});

MyApp.on("start", function(options){
    console.log(options)
    /*
        if (Backbone.history){
            Backbone.history.start();
        }
    */
});