使用Require with underscore Map会导致require notloaded exception

时间:2016-06-05 07:38:06

标签: 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?

由于

1 个答案:

答案 0 :(得分:1)

require.js在加载代码时会实际静态分析您的代码,并搜索要加载的模块。实际上这是因为require.js实现了AMD(asynchrouns模块定义)规范而不是CommonJS。这种语法可以作为开发人员的帮助(或语法糖)。这样,当你的父模块被加载时,实际上它的所有依赖项都被加载了,只有require.js“运行”它,这给你一种同步加载的感觉(或列出这样的语法)。 / p>

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

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