zoukankan      html  css  js  c++  java
  • angular HttpClient get 方法获取数据

    请先查看上一篇文章HttpClient配置,之后在进行。

    使用

    this.myhttp.get('http://192.168.2.139:9002/api/patients')方法,读取webapi。因为get方法是通过AJAX方法读取数据的,所以服务器要可以跨域访问,具体方法查询webapi文章
     1 import { Component, OnInit } from '@angular/core';
     2 import { HttpClient } from '@angular/common/http';
     3 import { Patient } from './app.patient.server';
     4 @Component({
     5   selector: 'app-root',
     6   templateUrl: './app.component.html',
     7   styleUrls: ['./app.component.css']
     8 })
     9 
    10 export class AppComponent implements OnInit {
    11   title = 'angular4.3';
    12   results: string[];
    13   myPatientList: Patient[] = [];
    14 
    15 16   constructor(
    17     private myhttp: HttpClient
    18   ) { }
    19 
    20   ngOnInit(): void {
    21     this.myhttp.get('http://192.168.2.139:9002/api/patients')
    22       .subscribe(data => {
    23         this.myPatientList = (<any>data).map(u => new Patient({
    24           id: u.PatientId,
    25           FirstName: u.Details.FirstName,
    26           LastName: u.Details.LastName,
    27           MiddleName: u.Details.MiddleName,
    28           BirthDate: u.Details.BirthDate,
    29           Gender: u.Details.Gender,
    30           PhoneNumber: u.PersonalInfo.PhoneNumberPrimary,
    31           ZIPCODE: u.PersonalInfo.ZIPCODE,
    32           City: u.PersonalInfo.City,
    33           Street: u.PersonalInfo.Street,
    34           EmailAddress: u.PersonalInfo.EmailAddressPrimary,
    35           CitizenServiceNumber: u.PersonalInfo.ServiceNumber
    36         }));
    37 38 }); 39 } 40 }
    (<any>data).map()方法直接把读取data数据转换成实体类。
    【注:需要查看自己的json文件,对应好结构】 网上很多json都是以results[]开头。以所用(<any>data).results.map() 这个问题真的卡了我很久,在同事长庆的帮助下才得以解决。

    实体类代码,如下:
     1 export class Patient {
     2     id: string;
     3     FirstName: string;
     4     LastName: string;
     5     MiddleName: string;
     6     BirthDate: string;
     7     Gender: string;
     8     PhoneNumber: string;
     9     ZIPCODE: string;
    10     City: string;
    11     Street: string;
    12     EmailAddress: string;
    13     CitizenServiceNumber: string;
    14 
    15     public constructor(
    16       fields?: {
    17         id: string,
    18         FirstName: string,
    19         LastName: string,
    20         MiddleName: string,
    21         BirthDate: string,
    22         Gender: string,
    23         PhoneNumber: string,
    24         ZIPCODE: string,
    25         City: string,
    26         Street: string,
    27         EmailAddress: string,
    28         CitizenServiceNumber: string
    29       }) {
    30       // tslint:disable-next-line:curly
    31       if (fields) Object.assign(this, fields);
    32     }
    33 
    34     getFullName(): string {
    35       return this.FirstName + ' ' + this.LastName;
    36     }
    37   }

    前台调用很简单,直接读取实体类就可以了

     1 <div style="text-align:center">
     2   <h1>
     3     Welcome to {{title}}!
     4   </h1>
     5   {{results}}
     6   <h2>ngfor</h2>
     7   <ul>
     8       <li *ngFor="let myPatient of myPatientList" >
     9           id:{{myPatient.id}} FirstName :{{myPatient.FirstName}}
    10       </li>
    11 </ul>
    12 </div>

    显示如下图:

    注:这个用法写的还很简单,还需要传参数,加头文件之类的方法,不过已经可以基本的读取数据了。

  • 相关阅读:
    ****ural 1141. RSA Attack(RSA加密,扩展欧几里得算法)
    ural 1356. Something Easier(数论,哥德巴赫猜想)
    ural 1261. Tips(进制运算)
    ural 1355. Bald Spot Revisited(数的素因子划分)
    ural 1049. Brave Balloonists(标准分解式,数论)
    jpa之hibernate4.2.4之tomcat6.0测试
    jpa之hibernate4.2.4之双向关联之一对一、一对多、多对多
    JPA之hibernate4.2.4之简单测试
    oracle之存储过程
    dom4j之创建xml、读取xml、修改xml
  • 原文地址:https://www.cnblogs.com/cxd1008/p/7685999.html
Copyright © 2011-2022 走看看