我正在使用chart.js在html页面中创建多个图表,并且在Windows加载之后,图表将以每秒的速度动态更新,并使用新的数据值。我正在使用chart.js update()函数处理更新。所有创建的图表都存储在全局数组中,然后获取这些图表进行更新。
当我第一次打开html页面时,每秒都会更新图形(显示实时测量数据),但当我移动到webapp中的另一个子页面,然后返回到图形应该所在的页面时,所有画布都是空的(图表中的数据按照应该的方式更新,但画布保持空白)。
当我移动到subpage时,我只更新了部分html内容,包括那些画布所在的区域,当我返回frontpage时,我加载了与第一次打开网页时相同的html内容。
因此,当前我所做的是,当我返回到应该呈现图表的页面时,我从全局图表数组(第一次打开网页时创建的)获取旧图表,用新的数据集替换旧的数据集,然后调用chart.js update()函数。我知道数据集每秒都在更新,就像我第一次打开网页时一样(我用控制台检查了一下),但是画布会被清空,所以那些更新的图表不会再显示在任何地方了。
这是我的画布在更新正常工作时:
<canvas id="etaisyyskuvaaja" height="200" width="350" class="chartjs-render-monitor" style="display: block; touch-action: none; user-select: none; -webkit-user-drag: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></canvas>
这就是从子页面返回后尝试更新时的样子:
<canvas id="etaisyyskuvaaja"></canvas>
所以这就是我说的“清空”的意思。
我认为,当我更新在特定画布中创建的旧图表时,它应该在数据更新时自动呈现到相同的画布(实际上,当我第一次打开网页时html内容保持不变时,这确实是这样工作的)。然而,现在看来,当我更改了html内容(移动到子页面),然后再次加载那些画布(返回frontpage并再次开始循环更新)时,重新呈现不再起作用了。
有人能告诉我为什么我的图表更新了新的数据,因为他们应该,但画布被清空?
首先,我想也许我需要再次获取canvas元素,并将它们传递给update-function,如果chart-instance在删除html内容后丢失了原始canvas,然后将其加载回去或其他东西。
但是,我无法找到更新这些画布的解决方案,所以我设法解决了这个问题,如下所示:
当返回到首页时,我首先循环遍历图表数组,并删除所有应该在首页中的图表(上次加载首页时创建)。然后,在加载html内容后,我再次创建这些图表,并将它们保存在我的图表数组中。现在,当我开始循环更新那些新创建的图表,更新工作再次像一个魅力!
我目前正在重构遗留代码,以使用Android架构组件,并在一种存储库模式中设置一个房间数据库和截取请求。因此,表示层/域层要求存储库获取LiveData对象进行观察,或告诉他与服务器同步,然后删除旧的db条目,并从服务器中重新提取所有当前条目。 我已经写了同步部分的测试,所以我确信,对象被正确地获取并插入到数据库中。但是当写一个测试来观察db表的条目时(并测试对象是否被正确保存,以及在将它们放入d
问题内容: 添加评论时,我试图使angular.js视图本身进行更新。我的代码如下: 范围在输入时更新: 调试$ scope.currentItem显示注释已添加到其中,但是视图未显示新注释。我怀疑$ scope仅在其第一级被监视,这就是为什么视图不更新的原因。是这样吗?如果可以,我该如何解决? 解决方案:正如Ajay在下面的回答中所建议的那样,我将数组推入包装为apply函数,如下所示: 问题答
问题内容: 我已经阅读了有关此问题的主题,例如:[\AngularJS中未更新视图,\但我仍然不明白如何在我的简单示例中应用它。 我有这个功能: 当代码中的其他地方更新时(用户单击,交互,发送XHR请求时),它不会更新我的视图。我知道我需要使用$apply做些事情,但我不知道在哪里以及如何做。 有人可以向我解释如何针对这个简单用例解决此问题吗? 我的模型看起来像这样(如果这个问题是必要的)-它里面
我有一个使用rowedit的p:datatable,可以正常工作,但是当您删除一个条目时,datatable没有更新。 xhtml
我设置了一个chart.js图表,它使用mysql数据库中的数据。我已经建立了一个rest服务来提供tha数据,具有定义分组IE的能力。数据每隔5分钟测量一次,但我将其分组为3小时段,使用我的SQL语句 我希望能够通过定义一个新的粒度来改变数据的粒度。 我创建了一个更新函数来将请求发送到后端,并更新图表。 图表已更新,但默认值有61个条目(目前),最细粒度的数据有180个条目。所发生的情况是,数据
实际上,在按下我网站中的一个按钮后,我调用了一个引导模式,其中有一个Chart.js,该图表的数据是通过Ajax调用以以下方式加载的 现在我想“实时更新”该图表,但问题显然是通过对该函数执行来更新所有图表数据 虽然我将只更新新数据,因此如果我有一个图表构建为当一个新数据已添加到数据库为17:00/9时,我将只添加新值,或者另一个例子,如果15:00的数据已更改为10,我将只更新标签15:00中设置