ルーターの初期化時にアプリにすべてのデータをロードさせようとしています。データをロードするのに問題はありません。問題は、そのデータを必要とするルートに移動しようとすると、データがまだロードされていないことです。最初にデータをロードし、ルート ビューの「スケジュール」を処理するためにルーターが完全に初期化されるまで待つにはどうすればよいですか?
window.IrdbWeb = Backbone.Router.extend({
routes: {
'': 'home',
'schedule/': 'schedule'
},
initialize: function() {
window.encoderStream = new Stream();
window.scheduleLibrary = new Schedules();
window.recordingLibrary = new Records();
$.when(window.encoderStream.fetch(),window.recordingLibrary.fetch(), window.scheduleLibrary.fetch()).done(function(){
this.scheduleLibraryView = new ScheduleLibraryView({
collection: window.scheduleLibrary
});
});
// Player model
this.player = new Player();
this.playerView = new PlayerView({
player: this.player
});
$('div#overlay').fadeOut(800);
},
home: function() {
},
schedule: function() {
$("#info").empty().append(this.scheduleLibraryView.render().el);
}
});
window.App = new IrdbWeb();
Backbone.history.start();
私が家から行く場合 - >スケジュールは、ルートがビューを初期化する時間があるため機能します。