javascript - 在关闭并重新打开的 PrimeNG 对话框中绘制图表时,ngx-charts 线条消失
问题描述
我目前正在将 PrimeNG 用于我的 typescript angular 应用程序。我正在使用 PrimeNG 提供的对话框组件来弹出一个通过 ngx-charts(特别是 ngx-charts-line-chart)绘制图表的弹出窗口。当我第一次打开对话框时,图表绘制得很好。但是,当我关闭对话框然后重新打开它时,图表中的线条消失并且没有输出错误。当图表处于这种状态时,我仍然可以将鼠标悬停在它上面并通过工具提示查看点,但线条已经完全消失了。我能想到的唯一潜在原因是,当对话框关闭时,它正在调整大小并导致 ngx-charts 做一些奇怪的事情。
解决方案
通过测试找到了这个问题的答案。我使用对话框组件的 onHide 属性将图表数据设置为空数组,然后在重新打开图表数据时重置图表数据。
在你的组件 HTML 中做
<p-dialog (onHide)="onHide()">-chart stuff here-</p-dialog>
然后在你的组件中做
onHide(){ let o = [] as any; this.chartData = [...o]}
我想必须这样做,就像对话框根据最小化的大小最小化图表调整大小并且它与图表上的线条出现错误一样。但是如果没有线条,那么它不会在最小化时尝试绘制。
推荐阅读
- javascript - SVG 颜色更新脚本不适用于桌面,但适用于移动设备
- javascript - Winston logging - Winston 3.x 中漂亮的 JSON 格式
- javascript - 对所有屏幕使用相同的组件 REACT-NATIVE
- mariadb - MariaDB JSON 删除键及其值
- python - 如何激活 UITextEntryLine pygame_gui 元素?
- c# - 准确返回在数组中找到的字符串
- ios - 传递给 Xcode 中不带参数的调用的参数
- excel - 如何使用 Excel Solver 进行分段线性拟合?
- javascript - scrollIntoView 不起作用,为什么?以及如何修复?
- c# - 这个 Hashset 锁是线程安全的吗?