如何动态配置FusionCharts来渲染链接的图表,而不使用eval
How to dynamically configure FusionCharts to render linked charts without using eval
是否有一种方法可以动态配置FusionCharts来渲染链接图表而不使用eval?我今天早上从FusionCharts support那里得到了这个jsFiddle,他们向我展示了如何使用configureLink
方法(在jsFiddle的底部):
chart1.configureLink({
id:'chart1',
type: 'column3d'
});
注意chart1
的引用和它作为id的使用-这些本质上都是硬编码在jsFiddle的顶部:var chart1 = new FusionCharts({...
我们是动态生成图表的,但是我们不知道给定页面上有多少图表,所以我们在循环中这样做:
FusionCharts.ready(function() {
var fusionChartsCfg = JSON.parse(chartJson); //chartJson defined above
for (var i=0, n=fusionChartsCfg.length; i<n; i++) {
var chartConfig = fusionChartsCfg[i];
new FusionCharts(chartConfig).render();
/*
eval('var fChart = chart' + i + '=new FusionCharts(chartConfig)');
fChart.render();
if (chartConfig.linkedChartType) {
fChart.configureLink({
id:'chart' + i,
type: chartConfig.linkedChartType
});
}
*/
}
});
实际上,我已经得到了注释内的代码工作(而不是行new FusionCharts(chartConfig).render();
),但注意它对eval()
的依赖。有办法避免这种情况吗?这是我唯一能想到的事情,因为需要通过引用/变量名称引用FusionChart
实例,并且需要在发送给configureLink
id
属性。我不认为configureLink
方法中的id
属性是那么重要。请参考这份文件。
这样代码应该可以正常工作
FusionCharts.ready(function() {
var fusionChartsCfg = JSON.parse(chartJson); //chartJson defined above
for (var i=0, n=fusionChartsCfg.length; i<n; i++) {
var chartConfig = fusionChartsCfg[i];
new FusionCharts(chartConfig).render().configureLink({
type: chartConfig.linkedChartType
});
}
});
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何使用jQuery自动打开页面上的所有链接
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jquery动画可以通过编程链接吗
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 单击页面上的链接后高度发生变化
- 将纯文本URL转换为可单击链接
- python-selenium-点击上升链接
- 一点javascript元编程&可链接的设置器
- ng视图外的链接重定向到ng视图内的页面
- 如何调用“;链接_;在onclick事件上使用Javascript
- 链接所有<a>Meteor
- 如何在Angular中的表的所有单元格中添加链接
- 通过链接重定向不;我不在jstree中工作
- 如何在包含 Eval 的 asp 超链接中调用 javascript 函数
- 我怎么能有链接做不同的事情在Backbone.js不使用eval()
- 如何动态配置FusionCharts来渲染链接的图表,而不使用eval