0

www 上のアドホック サーバーから Dojo1.9 amd モジュールをロードしたいのですが、実行時までどこから (url パラメーターを使用して) わかりません。

本質的に、私はこれと同等のことをしたい:

require(['http://www.foo.com/SomeRandomModule'], function( SomeRandomModule ) {
    // use SomeRandomModule
});
4

1 に答える 1

1

迅速で汚い方法

モジュールシステムと相対パスに関しては、いくつかの予期しない癖があるかもしれませんが、私はそれを十分に使用していません:

require([ "//host/myext/mod1/mod2.js" ],function(mod2){
    // If current webpage is http:// or https:// or file:// 
    // it tries to use the same protocol
});

より良い方法

require()特定のパッケージ名 (例: ) で始まるすべてのモジュールをfoo特定の URL からのものとして扱うように構成します。あなたのスターターページから、次のようなもの:

<script src="dojo/dojo.js" 
    data-dojo-config="packages:[{name:'myext',location:'//host/js/myext'}], async: 1, >
</script>

これにより、最初の例を次のように大幅に改善できます。

require([ "myext/mod1/mod2" ],function(mod2){

});

代わりに Dojo Bootstrap のインストールを使用している場合は、ファイルに触れるのを避けて、代わりにスタートアップ ファイルdata-dojo-config内に置くことができます。run.js

require({
    baseUrl: '',
    packages: [         
        'dojo',
        'dijit',
        'dojox',            
        'myapp',
        { name: 'myext', location: '//host/js/myext', map: {} }
    ]    
}, [ 'myapp' ]);
于 2013-09-06T02:56:14.713 に答える