2

スタートアップイベントについて理解しようとしています...

だから私はこれのためにフィドルhttp://jsfiddle.net/erichbschulz/59cDq/を作成しました

これ:

console.log("starting");  
MyInnerApp = new Backbone.Marionette.Application();
MyOuterApp = new Backbone.Marionette.Application();
MyInnerApp.addInitializer(function(options){
  console.log("MyInnerApp initializer running");  
});
MyOuterApp.addInitializer(function(options){
  console.log("MyOuterApp Initializer running");  
});
$(document).ready(function(){
  console.log("$(document).ready");
  MyInnerApp.start();
});
MyOuterApp.start();
console.log("end of file");  

$(document).ready()... の前にマリオネット コードが起動することを発見しましたが、これは常に当てはまるのでしょうか?

マリオネット アプリでの $(document).ready() の役割は何ですか?

編集:初期化について言及してくれたブライアンに感謝:フィドルの更新後

4

2 に答える 2

3

あなたはおそらくこの問題を長い間解決してきました...

基本的に、マリオネット アプリと の間には関係はありません$(document).ready()

$(document).ready()DOM が完全に読み込まれたときに発生するコールバックです。ただし、 html ドキュメントの下部に js をロードする場合は必要ありません。

何らかの理由で js を html ドキュメントの一番下に移動できない場合は、DOM に依存するコード (.render() の呼び出しなど) を$(document).ready()コールバック内で実行する必要があります。

于 2014-05-07T17:21:11.810 に答える
2

addInitializer()アプリの初期化時に実行されます ( MyInnerApp = new Backbone.Marionette.Application())。:afterアプリが初期化されたとき、またはアプリが開始されたときに使用できる他のアプリ イベントがあります。

https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.application.md#application-event

MyInnerApp.on("initialize:after", function(){
  console.log("MyInnerApp initialize:after");  
});

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

http://jsfiddle.net/bryanbuchs/uMTnv/

于 2013-05-07T14:12:51.917 に答える