javascript - 对 require JS 感到困惑

标签 javascript requirejs

考虑以下示例:

var ExampleFunction = function(param1, param2) {
   this.helloWorld = function() {
       console.log('hello world' + param1 + param2);
   }
}

当我做类似的事情时:

require(['https://path/to/example_function.js'], function(exampleFunction){
    console.log(exampleFunction);
});

我明白了:

define( function() { return function(param1, param2) {
    this.helloWorld = function() {
       console.log('hello world' + param1 + param2);
    }
} } );

如何注入(inject)该函数的依赖项?我似乎无法实例化我自己通过调用注入(inject)它们的函数。

此外,当本地加载时,我可以这样做:

var exampleFunction = new ExampleFunction(someParam, someOtherParam);

但是当从服务器加载时我不能。

想法?

最佳答案

如果您使用的脚本不是 RequireJS 格式(包装在 Define() 中),则必须将它们填充到您的 require 配置中,以便可以正确加载它们:

require.config({
    paths: {
        "exampleFunction": "https://path/to/example_function.js"
    },

    shim: {
        "exampleFunction":      {
            exports:    "exampleFunction"
        }
    }
});

然后像这样使用它们

require(["exampleFunction"], function(exampleFunction){
    new exampleFunction(param1, param2);
});

有关该主题的更多信息 http://requirejs.org/docs/api.html#config-shim

关于javascript - 对 require JS 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36852546/

相关文章:

javascript - 所有匹配元素的 jQuery .html()

angularjs - 单元测试 Angular 指令 templateUrl (包括 requirejs 和 ng-html2js

javascript - 限制保存在我的数据库中的特定域的 PHP API

javascript - 在隐藏表单输入中附加文件名

javascript - 如何禁用 HTML 页面中的元素但能够使用 jQuery Draggable 拖动它?

javascript - 仅验证字母字符的正则表达式

javascript - 将杏仁与 grunt-contrib-requirejs 一起使用

javascript - 无法加载路由模块 requirejs? Durandal bug ?

javascript - 脚本错误 - requireJS

javascript - 来自服务器的 Json 数据未填充主干模型