LoginSignup
1
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-10-06

検証用コード

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 メソッドなんてなかったんや。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1