【发布时间】:2014-08-28 03:44:41
【问题描述】:
我正在深入研究 Require.js,以使用 this link 和 this link 作为指导来构建 Google 地图应用程序。 我的目标是构建一个模块化应用程序,首先加载“基本”功能,然后我可以“插入”客户端特定功能 - 无需重复代码。所以每个项目都将使用“基础”JS,但每个项目的特定于客户端的 JS 会有所不同。下面是我的加载依赖项列表。这是我需要加载的顺序,列表中的前一项需要完全加载,然后才能进入下一项:
- 加载 jQuery 和 Google Maps API(我得到了这个)
- 加载 JavaScript 以使用基本应用程序功能在页面上初始化我的地图
- 加载其他/特定于客户端的 JavaScript。
使用这个我可以让 1 和 2 正常工作:
main.js:
require.config({
paths:{
jquery: "jquery-1.7.1.min",
jqueryui: "jquery-ui-1.8.22.custom.min",
async: "async",
requiremap: "requiremap"
}
});
require(
[ "jquery", "jqueryui", "requiremap" ],
function( $, jqueryui, requiremap ) {
}
);
requiremap.js:
define(
[ "async!http://maps.google.com/maps/api/js?sensor=false" ],
function() {
require(['js/basemapfunctionality.js'], function() {
});
}
);
但是现在我需要等到#2 完全加载后才能加载#3。 Require.js 可以做到这一点,如果可以,怎么做? (如果没有,是否有替代框架可以做到这一点)我尝试添加另一个嵌套的 require 方法来加载附加功能(如下所示),但它的行为就像 #2 尚未加载。
define(
[ "async!http://maps.google.com/maps/api/js?sensor=false" ],
function() {
require(['js/basemapfunctionality.js'], function() {
require(['js/additionalfunctionality.js'], function() {
// now everything should be loaded, but it ain't
});
});
}
);
【问题讨论】:
标签: javascript google-maps requirejs