如何使用 Angular 8 在屏幕上显示旋转器,直到 API 加载数据?

angularjsweb developmentfront end technology

在本文中,我们将学习如何在屏幕上显示旋转器,直到 API 加载数据,并使用 Angular 8 和 HTTPClient 服务从虚拟待办事项 API 获取数据。

Angular 8 是一个用于构建 Web 应用程序的强大框架。它提供了许多功能,可以轻松创建动态交互式用户界面。

让我们使用该框架,并通过一个示例了解如何有条件地显示旋转器组件。

先决条件

在继续以下步骤之前,请确保您的系统上已安装 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">

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

步骤 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);
   }
}

这将创建一个旋转按钮,当我们从服务器获取数据时,它会显示出来。

步骤 5

现在,让我们使用此组件在等待 API 加载数据时显示旋转按钮。打开"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 创建一个简单的旋转按钮,并在等待数据加载时显示它。


相关文章