1

モジュール開発/依存関係管理に RequireJS を使用する Web アプリを構築しています。
私たちは次のように物事を蹴ります:

<script data-main="js/main" src="js/libs/require/require.js"></script>

Web アプリは、メインフレーム システムとの通信に必要なサード パーティのアプレットも使用します。アプレットには、アプレットと通信するための 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 オブジェクトを使用できるようにするにはどうすればよいですか?

4

1 に答える 1

3

defineAPI に非同期のようなメソッドを使用したいようです。これを require.js で行うには、小さなプラグインを作成する必要があります。その結果、次のファイルが作成されます。

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 スクリプトへのパスにすることができます)

于 2012-12-13T18:19:45.993 に答える