等待获取数据时显示加载屏幕
Display loading screen while waiting fetch data
如何在页面加载时显示加载程序并在加载时隐藏它?
我已经在我的 html 和 css 中创建了一些代码,但不幸的是,它似乎并不像我期望的那样。
我的意思是,当页面已经加载时,加载器仍然出现。
观点:
到目前为止,这是我的 dashboard.component.html
<style type="text/css">
.text-xxl {
font-size: 90px;
}
</style>
<div class="row">
<div eds-tile class="xl-4">
<eds-tile-title>User on Shift</eds-tile-title>
<div class="loading large"></div>
<table class="table">
<thead>
<tr>
<th *ngFor="let col of tablePresetColumns">
{{col.content}}
</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr *ngFor="let row of tablePresetData ">
<td> {{row[0].content}}</td>
<td *ngFor="let cell of row">
<span class ="dot" [ngClass]="{
'dot-yellow' : cell.content == 'Busy',
'dot-green' : cell.content == 'Idle',
'dot-red' : cell.content == 'Overload'}">
</span>
</td>
</tr>
</tbody>
</table>
</div>
<div class="xl-8">
<div class="row">
<div eds-tile class="xl-6" style="height: 200px">
<eds-tile-title>Number of User on Shift</eds-tile-title>
<div class="kpi">
<div class="loading large"></div>
<div class="item" *ngFor="let item of apiData">
<span class="text-xxl">{{item.total}}</span>
<span class="text-lg color-gray"> Persons</span>
</div>
</div>
</div>
<div class="row">
<div eds-tile class="xl-7" style="height: 500px">
<eds-tile-title>User on Shift Indicator</eds-tile-title>
<div class="loading large"></div>
<div id="container" style="height: 100%"></div>
</div>
</div>
</div>
</div>
dashboard.component.css
.loading {
height: 32px;
width: 32px;
font-size: 32px;
position: relative;
}
.loading::after {
content: "\e930";
font-family: "Ericsson Icons" !important;
animation: rotateAnimation 2s infinite ease-in-out;
position: absolute;
}
.loading.small {
font-size: 16px;
height: 16px;
width: 16px;
}
.loading.large {
font-size: 64px;
height: 66px;
width: 64px;
}
.loading.btn {
font-size: 16px;
height: 30px;
width: 100px;
}
.loading.btn::after {
left: calc(50% - 8px);
top: calc(50% - 8px);
}
@keyframes rotateAnimation {
0% {
transform: rotate(0);
}
25% {
transform: rotate(300deg);
}
100% {
transform: rotate(0);
}
}
谢谢
当数据被感染时,你应该隐藏加载器元素,如下所示 -
<eds-tile-title>Number of User on Shift</eds-tile-title>
<div class="kpi">
<div *ngIf='!apiData' class="loading large"></div>
<div class="item" *ngFor="let item of apiData">
<span class="text-xxl">{{item.total}}</span>
<span class="text-lg color-gray"> Persons</span>
</div>
</div>
<div eds-tile class="xl-7" style="height: 500px">
<eds-tile-title>User on Shift Indicator</eds-tile-title>
<div *ngIf='!apiData' class="loading large"></div>
<div id="container" style="height: 100%"></div>
</div>
PS:假设您使用的是Angular。
使用一个标志在你的 TS 文件中显示隐藏你的 HTML
public dataAvailable:boolean=false;
while make API 调用将此标志设置为 true
this.dataAvailable = true
并且当 API 响应完成时,侧面响应来了,让它变成 false
this.dataAvailable = false
并使您的 HTML 具有 *ngIf 条件以显示隐藏您的 html 并显示您的加载器,而标志为真之后显示您的 HTML
如何在页面加载时显示加载程序并在加载时隐藏它?
我已经在我的 html 和 css 中创建了一些代码,但不幸的是,它似乎并不像我期望的那样。 我的意思是,当页面已经加载时,加载器仍然出现。
观点:
到目前为止,这是我的 dashboard.component.html
<style type="text/css">
.text-xxl {
font-size: 90px;
}
</style>
<div class="row">
<div eds-tile class="xl-4">
<eds-tile-title>User on Shift</eds-tile-title>
<div class="loading large"></div>
<table class="table">
<thead>
<tr>
<th *ngFor="let col of tablePresetColumns">
{{col.content}}
</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr *ngFor="let row of tablePresetData ">
<td> {{row[0].content}}</td>
<td *ngFor="let cell of row">
<span class ="dot" [ngClass]="{
'dot-yellow' : cell.content == 'Busy',
'dot-green' : cell.content == 'Idle',
'dot-red' : cell.content == 'Overload'}">
</span>
</td>
</tr>
</tbody>
</table>
</div>
<div class="xl-8">
<div class="row">
<div eds-tile class="xl-6" style="height: 200px">
<eds-tile-title>Number of User on Shift</eds-tile-title>
<div class="kpi">
<div class="loading large"></div>
<div class="item" *ngFor="let item of apiData">
<span class="text-xxl">{{item.total}}</span>
<span class="text-lg color-gray"> Persons</span>
</div>
</div>
</div>
<div class="row">
<div eds-tile class="xl-7" style="height: 500px">
<eds-tile-title>User on Shift Indicator</eds-tile-title>
<div class="loading large"></div>
<div id="container" style="height: 100%"></div>
</div>
</div>
</div>
</div>
dashboard.component.css
.loading {
height: 32px;
width: 32px;
font-size: 32px;
position: relative;
}
.loading::after {
content: "\e930";
font-family: "Ericsson Icons" !important;
animation: rotateAnimation 2s infinite ease-in-out;
position: absolute;
}
.loading.small {
font-size: 16px;
height: 16px;
width: 16px;
}
.loading.large {
font-size: 64px;
height: 66px;
width: 64px;
}
.loading.btn {
font-size: 16px;
height: 30px;
width: 100px;
}
.loading.btn::after {
left: calc(50% - 8px);
top: calc(50% - 8px);
}
@keyframes rotateAnimation {
0% {
transform: rotate(0);
}
25% {
transform: rotate(300deg);
}
100% {
transform: rotate(0);
}
}
谢谢
当数据被感染时,你应该隐藏加载器元素,如下所示 -
<eds-tile-title>Number of User on Shift</eds-tile-title>
<div class="kpi">
<div *ngIf='!apiData' class="loading large"></div>
<div class="item" *ngFor="let item of apiData">
<span class="text-xxl">{{item.total}}</span>
<span class="text-lg color-gray"> Persons</span>
</div>
</div>
<div eds-tile class="xl-7" style="height: 500px">
<eds-tile-title>User on Shift Indicator</eds-tile-title>
<div *ngIf='!apiData' class="loading large"></div>
<div id="container" style="height: 100%"></div>
</div>
PS:假设您使用的是Angular。
使用一个标志在你的 TS 文件中显示隐藏你的 HTML
public dataAvailable:boolean=false;
while make API 调用将此标志设置为 true
this.dataAvailable = true
并且当 API 响应完成时,侧面响应来了,让它变成 false
this.dataAvailable = false
并使您的 HTML 具有 *ngIf 条件以显示隐藏您的 html 并显示您的加载器,而标志为真之后显示您的 HTML