什么是在App初始化之前从服务器获取多个模型的最佳方法?

时间:2012-12-19 19:24:28

标签: ajax spine.js

我有3个模型,我需要在启动应用程序之前从服务器成功获取数据

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

我会使用$.Deferred()吗?还是在spine.js中有更好的选择?

1 个答案:

答案 0 :(得分:2)

我最终得到了这个实现:

为每个模型创建延期

@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。