RequireJS - 导出一组函数

时间:2017-02-23 09:24:02

标签: javascript jquery dependency-injection requirejs dependencies

我遇到 RequireJS 的问题,当我有 require <时,我无法导出一组功能/ strong>声明。

假设我有一个名为 mySubFile.js 的文件,首先我需要注入 jQuery ,然后再注入另一个依赖项。现在,让我们假设我有 myFunction ,我想导出它以便从另一个文件调用。

define('mySubFile', ['jquery'], function ($) {
    require(['dependency1'], function (dependency1) {

       let myFunction = function(){ return "Hey There"; }

       return : {
                    myFunction : myFunction
       }

    });
});

现在让我们假设我想从 myFile.js 调用该函数:

define('myFile', ['jquery'], function ($) {
    require(['mySubFile'], function (mySubFile) {

       console.log(mySubFile.myFunction());

    });
});

这不起作用。我明白了:

  

无法阅读属性&#39; myFunction&#39;未定义的。

另一方面,如果我按如下方式定义 mySubFile.js

define('mySubFile', ['jquery', 'dependency1'], function ($, dependency1) {

   let myFunction = function(){ return "Hey There"; }

   return : {
               myFunction : myFunction
   }

});

我可以访问 myFunction ,但我需要先解析 jQuery

我正在努力寻找解决方案,但仍然找不到任何东西。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果你总是需要在模块之前使用jQuery,你可以这样做:

define("mySubFile", function(require, exports, module){ 
    var a = require("jQuery"), // dependency
        b = require("knockout"); // dependency
    /* rest of the code for this module */ 

    let myFunction = function(){ return "Hey There"; }

   return : {
            myFunction : myFunction
         }
});