javascript - 使用带有下划线的 Require Map 会导致 require notloaded 异常

标签 javascript requirejs underscore.js

我正在尝试将数据列表映射到我的数组,如下所示:

this.data = [];
_.map(dataList, function(element){
    var logic = require('./'+element+'/'+element);
    var tempalte = require('text!./' + element + '/' + element + '.html');
    return { Logic : logic, Template : tempalte };
});

我在尝试时不断收到以下错误: “尚未为上下文加载模块名称“...”:_ http://requirejs.org/docs/errors.html#notloaded

我在这里做错了什么?没有选项可以在 require 中使用下划线映射吗?

谢谢

最佳答案

require.js 实际上在加载代码时静态分析代码,并搜索要加载的模块。实际上,发生这种情况是因为 require.js 实现了 AMD(异步模块定义)规范,而不是 CommonJS。对于我们开发人员来说,这种语法可以作为助手(或语法糖)。这样,当你的父模块被加载时,实际上它的所有依赖项也被加载,然后 require.js “运行”它,这给你同步加载的感觉(或者列出语法等)。

TL;DR:您无法使用此语法动态加载模块。

在我看来,像这样动态加载模块并不是一个很好的做法,因为我不确定您是否能够使用 r.js 对其进行优化。

关于javascript - 使用带有下划线的 Require Map 会导致 require notloaded 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37639564/

相关文章:

javascript - 使用 JavaScript 将按钮按下情况传达给另一个页面?

javascript - 将引导变量和 JSON 传递给 require.js

javascript - 了解带有 grunt 和主干以及相对路径的 r.js 选项

javascript - 以同步方式使用requirejs(AMD)是错误的吗?

backbone.js - 主干模型给 this.set 不是 Model.initialize 中的函数

javascript - 使用 Backbone 为模板添加下划线

javascript - html中的图像预览错误

javascript - 如何固定输入的位置,使其始终位于屏幕居中但其大小可以更改的元素下方?

javascript - Android:有没有办法在渐进式应用程序架构中启用 WI-FI

javascript - 计数器后重置_.