【发布时间】:2015-06-22 06:24:26
【问题描述】:
我目前正在开发我的第一个 Ionic 应用程序,并且是第一次使用 Angular。
我正在使用pie-chart library 在应用程序的仪表板上显示图表。如果我在仪表板上刷新并且看起来像这样,这会很好地工作:
https://imgur.com/YUCAO6i,oakGp8c#1
但是,如果我导航到另一个选项卡,比如说服务器选项卡,然后在那里刷新,宽度和高度不会应用于仪表板上的图表。相反,它们使用标准宽度和高度(500h x 900w 而不是 100h x 100w)呈现。 (见 imgur 上的第二张图片)。如果我再次在仪表板上刷新,它们将正常呈现。
我浏览了库的源代码,看到在dashboard上刷新时,element[0].parentElement.offsetWidth等于100,但是如果我在另一个视图上刷新时,它是0,所以默认值被使用。看起来饼图指令在另一个视图上时无法访问父级。
这里是使用的 HTML 和 CSS:
HTML
<div class="pieChart">
<pie-chart data="server.chartData.cpu" options="chartOptions"></pie-chart>
</div>
CSS
.pieChart {
height: 100px;
width: 100px;
float: left;
}
我花了几个小时试图找到答案,但我什至不确定我到底需要搜索什么。我想出的唯一解决方案是更改 pie-chart.js 中的默认值,我不想这样做。
编辑
该应用程序是开源的,您可以在我的存储库中找到完整的代码:https://github.com/AndreasGassmann/cloudatcostapp
【问题讨论】:
-
会不会是你的数据丢失了(server.chartData.cpu)刷新时丢失了?
-
它将替换为从 API 接收到的新值。但是 server.chartData.cpu 仍然存在(正如您在底部的图片中看到的那样,图表仍然存在,只是太大了)。
标签: html css angularjs angular-ui-router ionic