0

初期化時にsocket.ioを介してモデルデータをフェッチするモジュールを備えたBackbone.Marionetteアプリがあります。これでルーターを起動します:

App.on('initialize:after', function(){
    Backbone.history.start();
});

問題は、データがフェッチされる前にルーターが起動するため、ビューがレンダリングされないことです。

ページの読み込み時にモデルがフェッチされた後にビューを表示するにはどうすればよいですか?

4

2 に答える 2

0

削除する

Backbone.history.start();

ここから、fetch の成功コールバックに入れます。

開始時にいつでもルーターを初期化できますが、実際にhistory.start()はリダイレクトを行います。

アップデート

複数のフェッチの成功の検出:

//Declare an array 
App.modules = [];

//When you initialise each module, push it to array
App.modules.push(this.id);

//Declare a counter for modules 
App.moduleCounter = 0;

var startHistory = function() {
     App.moduleCounter++;        

     if(App.modules.length === App.moduleCounter) {
           Backbone.history.start();
      }    
 } 

//Call this function on each success 
 startHistory();
于 2013-10-21T13:04:12.973 に答える