Marionette.js

Marionette.Application を start した際に実行されるイベントの順番

More than 3 years have passed since last update.


検証用コード


my_app.js.coffee

@MyApp = do (Backbone, Marionette) ->

App = Marionette.Application.extend
initialize: (options) ->
console.log 'initialize'

app = new App()

app.on 'start', ->
console.log 'start'
Backbone.history.start
pushState: true

app.addInitializer ->
console.log 'addInitializer in MyApp'

app

app.on 'before:start', ->
console.log 'before:start'

$(document).on 'ready', ->
console.log 'before start MyApp'
console.log '--------------------'
MyApp.start()
console.log '--------------------'
console.log 'after start MyApp'

$(document).on 'page:load', ->
Backbone.history.checkUrl()

@MyApp.module 'Module1', (Module1, App, Backbone, Marionette, $, _) ->
App.addInitializer ->
console.log 'addInitializer in Module1'

@MyApp.module 'Module2', (Module2, App, Backbone, Marionette, $, _) ->
App.addInitializer ->
console.log 'addInitializer in Module2'

@MyApp.module 'Module10', (Module10, App, Backbone, Marionette, $, _) ->
App.addInitializer ->
console.log 'addInitializer in Module10'



実行結果

before start MyApp

--------------------
before:start
addInitializer in MyApp
addInitializer in Module1
addInitializer in Module2
addInitializer in Module10
start
--------------------
after start MyApp


結論


  • まず before:start イベントが発火する。

  • 次に addInitializer 関数の内容が定義された順番で実行される。

  • 最後に start イベントが発火する。

  • initialize メソッドなんてなかったんや。


参考