我正在深入研究 Require.js 以使用此链接和此链接作为指南来构建 Google Maps 应用程序。我的目标是构建一个模块化应用程序,首先加载“基本”功能,然后我可以“插入”客户端特定功能-无需重复代码。所以每个项目都将使用“基础”JS,但每个项目的特定于客户端的 JS 会有所不同。下面是我的加载依赖项列表。这是我需要加载的顺序,列表中的前一项需要完全加载,然后才能进入下一项:
- 加载 jQuery 和 Google Maps API(我得到了这个)
- 加载 JavaScript 以使用基本应用程序功能在页面上初始化我的地图
- 加载额外的/特定于客户端的 JavaScript。
我可以使用这个让 1 和 2 正常工作:
主.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 ) {
}
);
要求地图.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
});
});
}
);