アプリを初期化する前にサーバーからデータを正常にフェッチするために必要な3つのモデルがあります
ModelA.fetch()
ModelB.fetch()
ModelC.fetch()
これに使用$.Deferred()
しますか、それともspine.jsにもっと良いオプションがありますか?
私はこの実装で終わった:
モデルごとに deferred を作成する
@modela = new $.Deferred()
@modelb = new $.Deferred()
@modelc = new $.Deferred()
次に、モデルのフェッチが完了したときにイベントをバインドします
ModelA.bind 'refresh', => @modela.resolve()
ModelB.bind 'refresh', => @modelb.resolve()
ModelC.bind 'refresh', => @modelc.resolve()
すべてが完了したら、最後に約束を解決します
$.when(
@modela, @modelb, @modelc
).then(
@appReady,
@appError
)
すべてのモデルが正常にフェッチされると、appReady が呼び出されます。