Требуется JS, как вызвать определенный модуль? - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь определить модуль в requirejs и использовать его в другом скрипте.Я много чего перепробовал, но не могу добиться того, чего хочу.

На данный момент это то, что у меня есть.

define([],{
    return {
        functionOne: function(){etc, etc...}
        functionTwo: function(){etc, etc...}        
    }
})

Затем я помещаю это в файл конфигурации:

requirejs.config({
    paths: {myModule: pathToMyModule}
})

И затем, это в сценарии, где я хочу использовать этот модуль

requirejs(["myModule"], function(){
    //Some code    
})

Но я все еще получаю эти ошибки, когда пытаюсь использовать определенный модуль:

myModule is not defined.
functionOne is not defined.    
functionTwo is not defined.

Я что-то упустил?

Спасибо.

1 Ответ

0 голосов
/ 04 октября 2018

Чтобы объявить свой модуль, вам нужно использовать function, поэтому первая строка в myModule.js должна выглядеть следующим образом:

define([], function () { // ...

Когда вы вызываете модуль, вам нужнообъявите его как аргумент, поэтому ваш requirejs вызов должен выглядеть следующим образом:

requirejs(["myModule"], function (myModule) {
//                                ^^^^^^^^
// Notice the argument declaration 

Для меня сработало следующее:

// myModule.js
define([], function () {
    return {
        functionOne: function(){
            console.log("Hello, world. I'm functionOne.");
        },
        functionTwo: function(){
            console.log("Hello, world. I'm functionTwo.");
        }        
    }
});

// require.config.js
requirejs.config({
    paths: { myModule: './myModule' }
});

// index.js
requirejs(["myModule"], function (myModule) {
    myModule.functionOne();
    myModule.functionTwo();
})
...