我有一些主干集合应该在加载时加载到我的应用程序中(引导数据)。这些数据是静态信息,可在任何地方用于填充列表,下拉等。
在我的路由器即时启动之前,加载这些数据并确保它们已满载的最佳方法是什么
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
});
答案 0 :(得分: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
});
});
答案 1 :(得分:0)
捎带Sushanth的评论......一般来说,你不想仅仅为了让你的页面呈现而提出多个请求。如果存在网络延迟,那对用户来说可能会非常令人沮丧。
将数据引导至您的页面App.StaticCollections.contactTypes.reset([
{ attr1: "val1", ... }
]);
如果适用,请使用服务器端语言动态嵌入值。