【问题标题】:chartnew.js cannot show chart after durandal project published在 durandal 项目发布后,chartnew.js 无法显示图表
【发布时间】:2015-07-28 19:00:52
【问题描述】:

我在我的durandal项目中使用chart.js来绘制图表,然后我发现了这个库的一些限制,我发现了另一个名为chartnew.js的库,它很像chart.js,但是chartnew.js更强大.一切顺利,图表看起来不错。

但是当我发布这个项目时,我遇到了一个非常神秘的问题: 图表没有出现在服务器中,但是当我在 webconfig 中更改 debug='true' 时,它可以工作,所有图表都出现在屏幕上。

你们对这种情况有什么想法吗?

【问题讨论】:

    标签: chart.js


    【解决方案1】:

    一种可能的解释是debug=true 引入的轻微服务器端延迟会延迟图表初始化,以至于在调用new Chart... 时画布元素的大小不为零。

    确认是否是这种情况的一种简单方法是确保您的画布 HTML 始终可见(即去掉任何动态隐藏/显示它的代码...)并查看问题是否发生。

    您需要确保在加载图表数据时画布元素可见,即调用new Chart...

    我认为resizeGraph 和/或chartJsResize(用于 ChartNew.js)也可用于强制重绘(例如,使用具有足够延迟的 setTimeout 以确保画布元素已被渲染)

    【讨论】:

    • 感谢您的解释,但我测试了静态数据和动态数据,结果是一样的,我认为不是延迟。
    • 我从chartjs.org 中找到了一条线索:或者,如果您正在使用 AMD 加载器来加载 JavaScript 模块,Chart.js 核心也支持这一点。请注意:库仍然会占用 Chart 的一个全局变量,即使它检测到 define 和 define.amd。如果这是一个问题,您可以调用 noConflict 将全局 Chart 变量恢复到它以前的所有者...
    • 除了静态数据之外,静态画布元素(始终可见/相同大小的东西)可能会有所帮助。
    • 我给画布设置了边框,除了图表之外的所有边框都出现了
    • 会出现边框,因为它们不依赖于 Chart.js 代码。您在控制台中看到任何错误吗?
    猜你喜欢
    • 2015-07-13
    • 2016-12-26
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 2016-03-09
    • 2021-06-29
    相关资源
    最近更新 更多