2016-04-25 9 views
0

を必要とするには、次の例を考えてみましょう:私はのような何か行うとについて混乱がJS

var ExampleFunction = function(param1, param2) { 
    this.helloWorld = function() { 
     console.log('hello world' + param1 + param2); 
    } 
} 

は:

require(['https://path/to/example_function.js'], function(exampleFunction){ 
    console.log(exampleFunction); 
}); 

を私が参照してください。

define(function() { return function(param1, param2) { 
    this.helloWorld = function() { 
     console.log('hello world' + param1 + param2); 
    } 
} }); 

は、どのように私はこれの依存関係を注入します関数?私は自分自身を呼び出して関数をインスタンス化することはできません。ローカルにロードされたとき

はまた、私は行うことができます。

var exampleFunction = new ExampleFunction(someParam, someOtherParam);

をしかし、ROMにサーバーをロードしたとき、私がすることはできません。

アイデア?

+0

define_()には、example_function.jsがラップされていますか? – Ozrix

+0

いいえ私はこれを行う必要があると仮定しません。上記のコードはサーバー上の正確なコードです。それを定義するにはjsをラップする必要がありますか? – TheWebs

答えて

2

あなたは(で()を定義するラップ)RequireJS形式になっていないスクリプトを使用している場合、あなたは彼らが適切にロードすることができるように、必要設定でそれらをシムする必要があります。

require.config({ 
    paths: { 
     "exampleFunction": "https://path/to/example_function.js" 
    }, 

    shim: { 
     "exampleFunction":  { 
      exports: "exampleFunction" 
     } 
    } 
}); 

次に、件名にそう

require(["exampleFunction"], function(exampleFunction){ 
    new exampleFunction(param1, param2); 
}); 

もっとのようにそれらを使用http://requirejs.org/docs/api.html#config-shim

+0

私はまだExampleFunctionをインスタンス化して、requireのコールバックを引数として渡すことはできますか? – TheWebs

+0

それはあなたが意味するものなら "new exampleFunction()"を行うことができるはずです – Ozrix

+1

はい、ありがとうございます。 – TheWebs

1

外部ファイルをモジュールとして提供する場合は、paths configを使用してください。ファイルパスは拡張子なしにする必要があります。ここan example from the docsです:

requirejs.config({ 
    //To get timely, correct error triggers in IE, force a define/shim exports check. 
    enforceDefine: true, 
    paths: { 
     jquery: [ 
      'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min', 
      //If the CDN location fails, load from this location 
      'lib/jquery' 
     ] 
    } 
}); 

//Later 
require(['jquery'], function ($) { 

}); 
+0

私はフォローしていません、あなたは例を挙げることができますか? – TheWebs

+0

私の関数が上記のように引数を取る場合、どうしたらよいでしょう。それをインスタンス化して、その引数を渡すことはできますか? – TheWebs

関連する問題