Obecnie pracuję nad moją pierwszą aplikacją Ionic i współpracuję z Angular po raz pierwszy.Ionic - CSS nie jest stosowany podczas odświeżania w innym widoku
Używam pie-chart library do wyświetlania wykresów na desce rozdzielczej aplikacji. Działa to dobrze, gdybym odświeżyć, a ja jestem na desce rozdzielczej i wygląda następująco:
https://imgur.com/YUCAO6i,oakGp8c#1
Ale jeśli przejść do innej karty, powiedzmy kartę serwera i odświeżenia tam, szerokość i wysokość nie jest zastosowane do wykresów na desce rozdzielczej. Zamiast tego są renderowane przy użyciu standardowej szerokości i wysokości (500h x 900w zamiast 100h x 100w). (Zobacz drugie zdjęcie na imgur). Jeśli ponownie odświeżę pulpit nawigacyjny, będą renderować się normalnie.
Przeszedłem przez kod źródłowy biblioteki i zobaczyłem, że podczas odświeżania na desce rozdzielczej element [0] .parentElement.offsetWidth jest równy 100, ale jeśli odświeżam, gdy w innym widoku, jest 0, więc domyślne wartości są używane. Wygląda na to, że dyrektywa w postaci wykresu kołowego nie ma dostępu do elementu nadrzędnego w innym widoku.
Oto HTML i CSS używane:
HTML
<div class="pieChart">
<pie-chart data="server.chartData.cpu" options="chartOptions"></pie-chart>
</div>
CSS
.pieChart {
height: 100px;
width: 100px;
float: left;
}
starałem się znaleźć odpowiedź na wiele godzin, ale nie jestem jeszcze jestem pewien, czego dokładnie muszę szukać. Jedynym rozwiązaniem, które wymyśliłem, jest zmiana domyślnej wartości w pliku pie-chart.js, której nie powinienem robić.
EDIT
Aplikacja jest open source, można znaleźć pełny kod w moim repozytorium: https://github.com/AndreasGassmann/cloudatcostapp
Czy to możliwe, że Twoje dane zostaną utracone (* server.chartData.cpu *) zostanie utracone po odświeżeniu? – Julien
Zostanie ona zastąpiona nowymi wartościami otrzymanymi z interfejsu API. Ale serwer.chartData.cpu jest nadal obecny (jak widać na zdjęciu u dołu, wykres nadal tam jest, jest po prostu zbyt duży). –