Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 模块的RequireJS回调依赖项_Javascript_Requirejs - Fatal编程技术网

Javascript 模块的RequireJS回调依赖项

Javascript 模块的RequireJS回调依赖项,javascript,requirejs,Javascript,Requirejs,我们正在构建使用RequireJS进行模块化开发/依赖关系管理的web应用程序。 我们通过以下几点来解决问题: <script data-main="js/main" src="js/libs/require/require.js"></script> 基本上,以上需要成为应用程序中许多模块的依赖项 如何使上述函数成为模块依赖项,以便api对象可供需要它的模块使用?您似乎希望对api使用异步方法,如定义方法。要使用require.js,您需要一个小插件。因此,您将拥有以

我们正在构建使用RequireJS进行模块化开发/依赖关系管理的web应用程序。
我们通过以下几点来解决问题:

<script data-main="js/main" src="js/libs/require/require.js"></script>
基本上,以上需要成为应用程序中许多模块的依赖项


如何使上述函数成为模块依赖项,以便api对象可供需要它的模块使用?

您似乎希望对api使用异步方法,如
定义
方法。要使用require.js,您需要一个小插件。因此,您将拥有以下文件:

1)myapi.js(API模拟文件)

2)myplugin.js(处理API回调的插件)

3)main.js(用于测试插件)


(其中“myapi”可以是实际API脚本的路径)

我们无法访问任何API脚本(据我所知),我们只需将JSAPInitialized()添加到页面,小程序调用它,并传入API参数。这有问题吗?你没问题。您不需要修改任何内容。如您所见,
jsapinitialized
函数是由这段代码自动创建的:
window.jsapinitialized=function(api){…
。当从第三方脚本调用该函数时,该函数只需通过requirejs internal.OK传递API,因为
jsapinitialized
是自动调用的,是否需要myapi.js?如果不需要,那么
需要什么()
参数与main.js中的参数类似?不,你不需要myapi.js-它只是模拟你的情况。这实际上是你的“第三方脚本”。我制作了这些本地文件来测试我的答案。你需要的参数应该是:
require(['myplugin!)!http://example.com/api.js“])
(也可以使用相对路径)好的,这就是我的想法,但我不确定。我只需要找到api.js的位置。这应该很容易…再次感谢你的帮助!顺便问一下,这是插件的典型用途吗,外部依赖?
/*
 * 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;

 }  
// this is actually simulation of your third party code
setTimeout(function() {
    if(typeof jsapiInitialized === 'function') jsapiInitialized('hello!');
}, 1000);
define(function(){
    return {
        load : function(name, req, onLoad, config){
            window.jsapiInitialized = function(api) {
                onLoad(api);
            };
            require([name]);
        }
    };
});
require(['myplugin!myapi'], function(api){
    alert(api);
});