1

アプリを初期化する前にサーバーからデータを正常にフェッチするために必要な3つのモデルがあります

ModelA.fetch()
ModelB.fetch()
ModelC.fetch()

これに使用$.Deferred()しますか、それともspine.jsにもっと良いオプションがありますか?

4

1 に答える 1

2

私はこの実装で終わった:

モデルごとに 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 が呼び出されます。

于 2012-12-21T00:11:10.220 に答える