0

我有一些骨干集合,应该在加载时加载到我的应用程序中(引导数据)。这些数据是静态信息,用于填充列表、下拉列表等。

在我的路由器实例化之前加载这些数据并确保它们完全加载的最佳方法是什么

App.StaticCollections.contactTypes.fetch({}),
App.StaticCollections.documentTemplates.fetch({}),
App.StaticCollections.invoiceStatuses.fetch({}),
App.StaticCollections.estimateStatuses.fetch({}),
App.StaticCollections.currencies.fetch({})

App.Router = new MainRouter();
Backbone.history.start({
    pushState: false,
    root: App.Root
});
4

2 回答 2

0

http://api.jquery.com/jQuery.when/

$.when(
  App.StaticCollections.contactTypes.fetch({}),
  App.StaticCollections.documentTemplates.fetch({}),
  App.StaticCollections.invoiceStatuses.fetch({}),
  App.StaticCollections.estimateStatuses.fetch({}),
  App.StaticCollections.currencies.fetch({})
).then(function () {
  App.Router = new MainRouter();
  Backbone.history.start({
    pushState: false,
    root: App.Root
  });
});
于 2013-05-15T19:16:14.227 回答
0

捎带 Sushanth 的评论……一般来说,您不希望仅仅为了使您的页面能够呈现而发出多个请求。如果有网络延迟,这可能会让用户非常沮丧。

使用Collection.reset将数据引导到您的页面:

App.StaticCollections.contactTypes.reset([ 
    { attr1: "val1", ... }
]);

如果合适,请使用您的服务器端语言动态嵌入这些值。

于 2013-05-15T19:16:41.583 回答