私はrequire.jsを使い始めたばかりです。jquery、いくつかのプラグイン、およびいくつかの独自のモジュールを正常にラップしました。Firebug (または Google Chrome の JS コンソール) からモジュール (または jquery) を操作しようとしていますが、うまくいきません。
コンソールからこれらのモジュールにアクセスする正しい方法は何ですか?
私はrequire.jsを使い始めたばかりです。jquery、いくつかのプラグイン、およびいくつかの独自のモジュールを正常にラップしました。Firebug (または Google Chrome の JS コンソール) からモジュール (または jquery) を操作しようとしていますが、うまくいきません。
コンソールからこれらのモジュールにアクセスする正しい方法は何ですか?
いくつかのメソッドを返すモジュール /app/scripts/methodsModule.js があるとします。
define({
someMethod: function() {
// do stuff
},
anotherMethod: function() {
// do some more stuff
}
});
データメイン ファイル /app/scripts/main.js には、次のものがあります。
require(['methodsModule'], function(methods) {
methods.someMethod() // call someMethod
methods.anotherMethod() // call anotherMethod
})
requireJS がデータ メインをロードすると、requireJS によって既にロードされているモジュールに、次のように javascript コンソール コマンド ラインからアクセスできます。
>> methods = require('methodsModule'); // requireJS has module methodsModule stored
>> methods.someMethod() // call someMethod
>> methods.anotherMethod() // call anotherMethod
モジュールが require() または define() の呼び出しによってロードされていない場合、モジュールがロードされた後に require 関数が呼び出されるように、独自のコールバックを渡す必要があります。
>> myCB = function(methods) { methods.someMethod() }
>> require(['methodsModule'], myCB)
それ以外の場合、requireJS は、モジュールがまだロードされていないことを示すエラーをスローします。
コールバックを使わない方法があります。
モジュールが以前にコンソールまたはアプリケーションで必要とされていなかった場合は、最初にそれを必要とすることができます:
require(['methodsModule']);
その後、「動的」require を使用してアクセスできます。
require('methodsModule').someMethod();