我获得了generateChart的未捕获的ReferenceError。
我在Chart.js中定义了generateChart,在require.config.js中引用。
我是javascript的新手并且要求这是一个新问题。
这是我的代码:
主html文件:
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<body>
<p id="example">
<script src="js/require.config.js"></script>
<script data-main="js/config.js" src="js/lib/require.js"></script>
</body>
&#13;
require.config.js
var require = {
paths: {
'd3': 'lib/d3',
'Chart' : 'Chart'
}
};
&#13;
config.js,包含主入口点和对generateChart的未引用调用
define([
'd3',
'Chart'
], function (d3, Chart) {
'use strict';
d3.csv("sp500.csv", function(data) {
d3.select("#example")
.datum(data)
.call(generateChart());
});
});
&#13;
我定义generateChart
的Chart.js
define([
'd3'
], function (d3) {
'use strict';
generateChart = function() {
};
});
&#13;
答案 0 :(得分:1)
我不是require.js用户,但它看起来依赖关系会传递到您在define
中指定的函数中。
这样,下面代码中的第二个参数应代表Chart
模块,您需要使用它来调用generateChart
:
define([
'd3',
'Chart'
], function (d3, Chart) { /// Second parameter is 'Chart'
'use strict';
d3.csv("sp500.csv", function(data) {
d3.select("#example")
.datum(data)
.call(Chart.generateChart()); /// use it here to call generateChart()
});
});
第二个问题是Chart.js应该返回一个对象,而不仅仅是定义一个函数:
define([
'd3'
], function (d3) {
'use strict';
return {
generateChart: function() {
alert('here');
}
}
});