我们正在构建使用RequireJS进行模块化开发/依赖关系管理的Web应用程序 我们采取以下措施:
<script data-main="js/main" src="js/libs/require/require.js"></script>
Web应用程序还使用与大型机系统通信所需的第三方小程序。 applet具有一个回调函数,该函数在初始化与api通信的api后执行,api对象作为参数传入。 例如
/*
* This function is invoked automatically after the Reflection session has
* completed its initialization. A reference to the JavaScript API is passed
* in as a parameter.
*/
function jsapiInitialized( api ) {
return api;
}
基本上,上述内容需要是应用程序中许多模块的依赖项。
如何使上述函数成为模块依赖项,因此api对象可用于需要它的模块?
答案 0 :(得分:3)
您似乎希望为API使用类似define
方法的异步方法。要使用require.js,您需要create一个小插件。因此,您将拥有以下文件:
1)myapi.js (API模拟文件)
// this is actually simulation of your third party code
setTimeout(function() {
if(typeof jsapiInitialized === 'function') jsapiInitialized('hello!');
}, 1000);
2)myplugin.js (处理API回调的插件)
define(function(){
return {
load : function(name, req, onLoad, config){
window.jsapiInitialized = function(api) {
onLoad(api);
};
require([name]);
}
};
});
3)main.js (测试你的插件)
require(['myplugin!myapi'], function(api){
alert(api);
});
(其中“myapi”可以是您真实API脚本的路径)