Angular 8 如何在数据从API加载完成前在屏幕上显示旋转图标

Angular 8 如何在数据从API加载完成前在屏幕上显示旋转图标

在本文中,我们将学习如何使用Angular 8和HTTPClient服务从一个虚拟的待办事项API中获取数据,在数据加载完成前在屏幕上显示一个Spinner。

Angular 8是一个强大的用于构建Web应用程序的框架。它提供了许多功能,使得创建动态和交互式用户界面变得容易。

让我们使用这个框架,通过一个示例来理解如何有条件地显示一个Spinner组件。

先决条件

在执行下面的步骤之前,请确保您的系统上已安装了angular CLI,因为在接下来的步骤中我们将严重依赖这个工具。

步骤1

首先,我们将创建一个Angular应用程序,并给它任意名称。在这个示例中,我们将使用名称”my-app”。

ng new my-app
cd my-app

步骤2

让我们创建一个新的组件来显示旋转器。使用以下命令生成一个新的组件,并在“src/app”文件夹内创建一个名为“spinner”的新文件夹。

ng generate component spinner

步骤3

打开 “spinner.component.html” 文件并添加以下代码 –

<div class="spinner">

此代码将在DOM中添加我们所需的旋转器所需要的HTML。

步骤4

接下来, 打开 “spinner.component.css” 文件并添加以下代码−

.spinner {
   width: 40px;
   height: 40px;
   border-radius: 50%;
   border-top: 3px solid #3498db;
   border-right: 3px solid transparent;
   animation: spin 1s linear infinite;
}
@keyframes spin {
   to {
      transform: rotate(360deg);
   }
}

这将创建一个 spinner,我们在从服务器获取数据时将显示它。

步骤5

现在让我们使用这个组件,在等待从 API 加载数据时显示 spinner。打开 “app.component.ts” 文件并添加以下代码 −

import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
   selector: 'app-root',
   templateUrl: './app.component.html',
   styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
   data: any;
   loading?: boolean;

   constructor(private http: HttpClient) { }

   async ngOnInit() {
      this.loading = true;
      await new Promise(resolve => setTimeout(resolve, 2000));
      this.http.get('https://jsonplaceholder.typicode.com/todos/1').subscribe(response => {
         this.data = response;
         this.loading = false;
      });
   }
}

步骤6

现在在您的应用程序模块中导入HttpClientModule。打开app.module.ts文件,然后粘贴下面的代码−

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { SpinnerComponent } from './spinner/spinner.component';
import { HttpClientModule } from '@angular/common/http';

@NgModule({
   declarations: [
      AppComponent,
      SpinnerComponent
   ],
   imports: [
      BrowserModule,
      AppRoutingModule,
      HttpClientModule
   ],
   providers: [],
   bootstrap: [AppComponent]
})
export class AppModule { }

步骤7

最后,打开”app.component.html”文件,添加以下代码−

<div class="container">
   <div *ngIf="loading" class="spinner-container">
      <app-spinner></app-spinner>
   </div>
   <div *ngIf="!loading">
      <pre>{{ data | json }}</pre>
   </div>
</div>

结论

在本文中,我们学习了如何创建一个Angular 8应用程序,在等待从API加载数据时在屏幕上显示一个旋转器。我们看到了如何使用HttpClient服务从API获取数据并在屏幕上显示它。我们还看到了如何使用CSS创建一个简单的旋转器,在等待数据加载时显示出来。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程