Взаимодействовать с модулями require.js из консоли Firebug / Chrome? - PullRequest
40 голосов
/ 10 декабря 2011

Я только начинаю с require.js.Я успешно завернул jquery, некоторые плагины и пару моих собственных модулей.Я пытаюсь взаимодействовать с моими модулями (или jquery) из Firebug (или JS-консоли Google Chrome), и мне не везет.

Как правильно получить доступ к этим модулям из консоли

Ответы [ 2 ]

54 голосов
/ 11 декабря 2011

Скажем, у нас есть модуль /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 выдает ошибкуговорят, что модуль еще не загружен ..

15 голосов
/ 09 декабря 2012

Существует способ без использования обратных вызовов.

Если ваш модуль ранее не использовался в консоли или приложении, вы можете просто потребовать его сначала:

require(['methodsModule']);

, после этого вы можетеиспользуйте «динамический» для доступа к нему:

require('methodsModule').someMethod();
...