📜  Angular7-Http客户端

📅  最后修改于: 2020-10-27 02:33:16             🧑  作者: Mango


HttpClient将帮助我们获取外部数据,将其发布到外部等。我们需要导入http模块以使用http服务。让我们考虑一个示例,以了解如何使用http服务。

要开始使用http服务,我们需要将模块导入app.module.ts中,如下所示-

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule , RoutingComponent} from './app-routing.module';
import { AppComponent } from './app.component';
import { NewCmpComponent } from './new-cmp/new-cmp.component';
import { ChangeTextDirective } from './change-text.directive';
import { SqrtPipe } from './app.sqrt';
import { MyserviceService } from './myservice.service';
import { HttpClientModule } from '@angular/common/http';

@NgModule({
   declarations: [
      SqrtPipe,
      AppComponent,
      NewCmpComponent,
      ChangeTextDirective,
      RoutingComponent
   ],
   imports: [
      BrowserModule,
      AppRoutingModule,
      HttpClientModule
   ],
   providers: [MyserviceService],
   bootstrap: [AppComponent]
})
export class AppModule { }

如果您看到突出显示的代码,我们已经从@ angular / common / http导入了HttpClientModule ,并且同样在imports数组中添加了它。

我们将使用上面声明的httpclient模块从服务器获取数据。我们将在上一章中创建的服务中执行此操作,并在所需组件内使用数据。

myservice.service.ts

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
   providedIn: 'root'
})
export class MyserviceService {
   private finaldata = [];
   private apiurl = "http://jsonplaceholder.typicode.com/users";
   constructor(private http: HttpClient) { }
   getData() {
      return this.http.get(this.apiurl);
   }
}

添加了一个名为getData的方法,该方法返回为给定URL获取的数据。

从app.component.ts调用方法getData,如下所示:

import { Component } from '@angular/core';
import { MyserviceService } from './myservice.service';
@Component({
   selector: 'app-root',
   templateUrl: './app.component.html',
   styleUrls: ['./app.component.css']
})
export class AppComponent {
   title = 'Angular 7 Project!';
   public persondata = [];
   constructor(private myservice: MyserviceService) {}
   ngOnInit() {
      this.myservice.getData().subscribe((data) => {
         this.persondata = Array.from(Object.keys(data), k=>data[k]);
         console.log(this.persondata);
      });
   }
}

我们正在调用getData方法,该方法会返回可观察的类型数据。在其上使用了subscription方法,该方法具有包含所需数据的箭头函数。

当我们在浏览器中签入时,控制台将显示如下数据:

获取数据

让我们如下使用app.component.html中的数据-

Users Data

输出

用户数据