我尝试在代码中添加Dojo/Dojox图表,但是我一直收到错误Uncaught TypeError: chart.addPlot is not a function
。我非常确定这是我在define([...], function()...
下设置依赖关系的方式有问题,但是我没有看到它。我的依赖关系设置如下:
define([
'dojo/_base/declare',
'dijit/_WidgetsInTemplateMixin',
'dojo/io-query',
'dojo/query',
'dijit/MenuItem',
....//Dependencies added for Pie Chart. See corresponding functions
'dojox/charting/Chart2D',
'dojox/charting/plot2d/Pie',
'dojox/charting/action2d/Highlight',
'dojox/charting/action2d/MoveSlice',
'dojox/charting/action2d/Tooltip',
'dojox/charting/themes/PrimaryColors'
], function (declare, _WidgetsInTemplateMixin, BaseWidget, ...
...Chart2D, Pie, Highlight, MoveSlice, Tooltip, dojoxTheme)
{
/*jshint unused: true*/
return declare([BaseWidget, _WidgetsInTemplateMixin], {
...
正如你所看到的,我的函数是按照相同的顺序排列的:Chart2D, Pie, Highlight, MoveSlice, Tooltip, dojoxTheme
。在下面的代码中,我通过调用构造函数new Chart2D
创建了一个名为chart
的变量。我假设这样我就可以使用它下面的任何方法。.addPlot
是Chart2D的一个方法。
var c = domConstruct.create("div", {
id: "Chart"
}, domConstruct.create("div"));
var chart = new Chart2D(c);
然而当我尝试使用下面的代码时,我得到了错误提示。当我添加依赖项时,是否遗漏了什么?建议?
chart.addPlot("default", {
type: "Pie",
radius: 50,
htmlLabels: true
});
1条答案
按热度按时间km0tfn4u1#
我刚刚找到了我的问题的答案。它确实与模块和函数参数的顺序有关。简单地说,问题是这样的:当我在define下面列出我的模块时,它们并没有和下面的函数别名/参数对齐。有几个mods没有列出函数参数,所以我想只要它们仍然是“技术上”按时间顺序排列就可以了。事实并非如此。这就是导致错误的原因。一旦我移动了它们(见下文),问题已修复。希望这对有类似问题的人有所帮助。x1c 0d1x