我真的不明白他們是如何有用的。在介紹了初始化原article這是代碼示例:木偶應用程序初始化程序的要點是什麼?
App = new Backbone.Marionette.Application();
App.addInitializer(function(){
// add some app initialization code, here
});
App.addInitializer(function(){
// more initialization stuff
// for a different part of the app
});
// run all the initializers and start the app
App.start();
但是,據我瞭解,有一個^之間沒有區別,這一點:
App = new Backbone.Marionette.Application();
// add some app initialization code, here
// more initialization stuff
// for a different part of the app
的好處後面的代碼是你可以實際控制初始化代碼的順序,而初始化器是以隨機順序運行的。那麼,addInitializer
的優勢是什麼?
您的第一個示例是,我確實瞭解如何將start()附加到您不知道何時會觸發的回調中。其他兩個例子並不多。 –
例如「一旦知道集合被定義就執行集合的初始獲取」 - 假設你的意思是你將在初始化器中獲取集合 - 你仍然必須知道集合是在初始化器運行之前定義的,所以你會仍然必須在運行'start()'之前或在'before:start'回調之前定義集合。那麼爲什麼在你沒有完成所有這些額外的回調之前,你不確定你是否定義了你的集合呢?無論哪種方式,你必須跟蹤事物的順序。 –