javascript - RequireJS 中未定义必需参数

标签 javascript requirejs

每当我尝试使用 RequireJS 加载页面特定脚本时,它都会告诉我 Builds 未定义。

<script type="text/javascript">
    requirejs(["../../js/builds/builds"], function(Builds) {
        console.log(Builds);
        Builds.createFunc(window.location.href.substring(window.location.href.lastIndexOf("/") + 1))
    });
</script>

js/builds/builds.js

"use strict";

define(["../../classes/builds/builds"], (Builds) => {
    const Create = (classID) => {
        return new Builds(classID);
    }

    return {
        createFunc: Create
    }
});

classes/builds/builds.js

"use strict";

define(() => {
    return class Builds {
        constructor(arg) {
            this.arg = arg;
            this.init();
        }

        init() {
            console.log("Build loaded with class ID " + this.arg);
        }
    }
});

我让它工作的唯一一次是将 Create 绑定(bind)到 window 时,但这不是我想要做的。我希望能够访问页面脚本中的 Builds 参数。

文件夹结构:

resources (where the source files are, I'm compiling them with WebPack)

resources/js/app/modules/builds/builds.js 编译为 public/js/builds/builds.js

enter image description here

public folder

https://image.prntscr.com/image/ysoZDj8DQBitkY65lZuLHQ.png

配置:

requirejs.config({
    baseUrl: "js/lib",
    paths: {
        app: "../app"
    }
});

我在这里缺少什么?

最佳答案

我得到了它的工作,但我把除index.html之外的所有文件都放在一个脚本文件夹中。四个 .js 文件:require.js、main.js、builds.js 和 class.js。但我没有使用webpack。我只是测试你的代码是否正确(我以前从未使用过 requireJS)。

索引.html:

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script data-main="./scripts/main" src="./scripts/require.js"></script>
</body>
</html>

main.js:

    console.log(Builds);
    Builds.createFunc(window.location.href.substring(window.location.href.lastIndexOf("/") + 1))
});

构建.js:

"use strict";

define(["./class"], (Builds) => {
    const Create = (classID) => {
        return new Builds(classID);
    }

    return {
        createFunc: Create
    }
});

class.js:

"use strict";

define(() => {
    return class Builds {
        constructor(arg) {
            this.arg = arg;
            this.init();
        }

        init() {
            console.log("Build loaded with class ID " + this.arg);
        }
    }
});

关于javascript - RequireJS 中未定义必需参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57832438/

相关文章:

javascript - 仅限内部应用程序的基于“Web”的推送通知

javascript - 根据计算的 RNG 动态调整 Div/Element 的大小

javascript - meteor 内容不显示

javascript - 获取 html 值列表并将它们填充到 backbone-requirejs 应用程序中的最佳方法

javascript - 如何让 stacktracejs 与 requirejs amd 模块一起工作

javascript - UMD 的 Grunt 测试

Javascript 外部对象全局?

javascript - Angular将csv文件上传到范围内而不发布到服务器

javascript - requirejs 按顺序加载东西

JavaScript:不会停止执行以下行的回调