40

私はrequire.jsを使い始めたばかりです。jquery、いくつかのプラグイン、およびいくつかの独自のモジュールを正常にラップしました。Firebug (または Google Chrome の JS コンソール) からモジュール (または jquery) を操作しようとしていますが、うまくいきません。

コンソールからこれらのモジュールにアクセスする正しい方法は何ですか?

4

2 に答える 2

54

いくつかのメソッドを返すモジュール /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 は、モジュールがまだロードされていないことを示すエラーをスローします。

于 2011-12-10T20:44:30.830 に答える
15

コールバックを使わない方法があります。

モジュールが以前にコンソールまたはアプリケーションで必要とされていなかった場合は、最初にそれを必要とすることができます:

require(['methodsModule']);

その後、「動的」require を使用してアクセスできます。

require('methodsModule').someMethod();
于 2012-12-09T11:15:36.033 に答える