Node/express と Mongodb を使用して、最初のバックボーン アプリを作成中です。このアプリは、最初のページの読み込み時に mongo からすべてのデータを収集し、それをバックボーン コレクションにプッシュするオンライン フード メニューおよび注文システムです。バックボーン ルーターの初期化関数を使用して、データを fetch() し、コレクションに入れています。私の問題は、Initialize 関数が完了する前にインデックス Router がロードされていることです。ブラウザのコンソールでコレクションにアクセスできるので、initialize 関数が正しく動作することを確認しました。
私はこれを間違った方法で行っているかもしれませんが、これは私のルーターの簡略化されたバージョンです:
GDB.Router = Backbone.Router.extend ({
routes: {
'': 'index',
'drinks': 'drinks'
},
meals: {},
initialize: function() {
meals = new GDB.Collections.Meals
meals.fetch();
},
index: function() {
var mealsView = new GDB.Views.Meals ({collection: meals});
$('#GDBContainer').append(mealsView.render().el);
},
drinks: function() {
var drinksView = new GDB.Views.Meals ({collection: meals.byCategory('drinks')});
$('#GDBContainer').append(drinksView.render().el);
}
});