直接上代码吧,之前的配置直接查看angular的前几篇文章。
后台TS代码:
1 import { Component, OnInit } from '@angular/core'; 2 import { Patient } from './patients.service'; 3 import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http'; 4 5 @Component({ 6 selector: 'patient-component', 7 templateUrl: 'app/app-patient/patient.component.html', 8 //providers: [PatientsService] 9 }) 10 export class PatientComponent implements OnInit { 11 12 results: string[]; 13 myPatientList: Patient[] = []; 14 myPatient: Patient; 15 myWebapiURL = 'http://localhost:52513/api/patients/'; 16 myHttpHead = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }; 17 private myHttpParams = new HttpParams().set('username', 'dih').set('password', 'dih'); 18 constructor 19 ( 20 private myhttp: HttpClient 21 //private myPatientsService: PatientsService 22 ) 23 { } 24 ngOnInit(): void { 25 this.results = ["ngOnInit()方法"]; 26 this.getall(); 27 } 28 getall() { 29 //console.log("getall"); 30 this.myPatientList = []; 31 this.myhttp.get(this.myWebapiURL) 32 .subscribe(data => { 33 let count = (<Array<string>>data).length; 34 for (var i = 0; i < count; i++) { 35 36 this.myPatientList.push(new Patient({ 37 id: data[i].PatientId, 38 FirstName: data[i].Details.FirstName, 39 LastName: data[i].Details.LastName, 40 MiddleName: data[i].Details.MiddleName, 41 BirthDate: data[i].Details.BirthDate, 42 Gender: data[i].Details.Gender, 43 PhoneNumber: data[i].PersonalInfo.PhoneNumberPrimary, 44 ZIPCODE: data[i].PersonalInfo.ZIPCODE, 45 City: data[i].PersonalInfo.City, 46 Street: data[i].PersonalInfo.Street, 47 EmailAddress: data[i].PersonalInfo.EmailAddressPrimary, 48 CitizenServiceNumber: data[i].PersonalInfo.ServiceNumber 49 })); 50 } 51 } 52 ); 53 } 54 55 56 getbyId(id: string) { 57 this.myhttp.get(this.myWebapiURL + id) 58 .subscribe(data => { 59 this.myPatient = new Patient({ 60 id: data['PatientId'], 61 FirstName: data['Details'].FirstName, 62 LastName: data['Details'].LastName, 63 MiddleName: data['Details'].MiddleName, 64 BirthDate: data['Details'].BirthDate, 65 Gender: data['Details'].Gender, 66 PhoneNumber: data['PersonalInfo'].PhoneNumberPrimary, 67 ZIPCODE: data['PersonalInfo'].ZIPCODE, 68 City: data['PersonalInfo'].City, 69 Street: data['PersonalInfo'].Street, 70 EmailAddress: data['PersonalInfo'].EmailAddressPrimary, 71 CitizenServiceNumber: data['PersonalInfo'].ServiceNumber 72 }); 73 }); 74 } 75 76 77 78 httpPostExample(FirstName: string, LastName: string) { 79 const body = { 80 "Details": { 81 "FirstName": FirstName, 82 "LastName": LastName, 83 "MaidenName": '', 84 "MiddleName": '', 85 "CustomId": '', 86 "BirthDate": "2017-10-18T11:05:51.017", 87 "Gender": 1 88 }, 89 "Anatomy": { 90 "BodyWeight": 75, 91 "BodyHeight": 175, 92 "LeftFootLength": 0, 93 "RightFootLength": 0, 94 "StrideLengthWalking": 0, 95 "StrideLengthRunning": 0, 96 "PelvisWidth": 0, 97 "LeftUpperLegLength": 0, 98 "RightUpperLegLength": 0, 99 "LeftLowerLegLength": 0, 100 "RightLowerLegLength": 0 101 }, 102 "PersonalInfo": { 103 "ServiceNumber": '', 104 "EmailAddressPrimary": "chenxiaodan@dihmed.com", 105 "EmailAddressSecondary": '', 106 "PhoneNumberPrimary": '', 107 "PhoneNumberSecondary": '', 108 "StreetAddress": '', 109 "ZIPCode": '', 110 "City": '', 111 "Street": '', 112 "Country": '', 113 "EmergencyContactDetails": '' 114 }, 115 "AdditionalProperties": '' 116 }; 117 this.myhttp.post(this.myWebapiURL, body, this.myHttpHead) 118 .subscribe( 119 (val) => { 120 console.log('POST call successful value returned in body', val); 121 this.getall(); 122 }, 123 response => { 124 console.log('POST call in error', response); 125 }, 126 () => { 127 console.log('The POST observable is now completed.'); 128 }); 129 130 } 131 132 httpPutExample(id: string, FirstName: string, LastName: string) { 133 const body = { 134 "PatientId": id, 135 "Details": { 136 "FirstName": FirstName, 137 "LastName": LastName, 138 "MaidenName": '', 139 "MiddleName": '', 140 "CustomId": '', 141 "BirthDate": "2017-10-18T11:05:51.017", 142 "Gender": 1 143 }, 144 "Anatomy": { 145 "BodyWeight": 75, 146 "BodyHeight": 175, 147 "LeftFootLength": 0, 148 "RightFootLength": 0, 149 "StrideLengthWalking": 0, 150 "StrideLengthRunning": 0, 151 "PelvisWidth": 0, 152 "LeftUpperLegLength": 0, 153 "RightUpperLegLength": 0, 154 "LeftLowerLegLength": 0, 155 "RightLowerLegLength": 0 156 }, 157 "PersonalInfo": { 158 "ServiceNumber": '', 159 "EmailAddressPrimary": "chenxiaodan@dihmed.com", 160 "EmailAddressSecondary": '', 161 "PhoneNumberPrimary": '', 162 "PhoneNumberSecondary": '', 163 "StreetAddress": '', 164 "ZIPCode": '', 165 "City": '', 166 "Street": '', 167 "Country": '', 168 "EmergencyContactDetails": '' 169 }, 170 "AdditionalProperties": '' 171 }; 172 this.myhttp.put(this.myWebapiURL + id, body, this.myHttpHead) 173 .subscribe( 174 (val) => { 175 console.log('put call successful', val); 176 this.getall(); 177 }, 178 response => { 179 console.log('put call in error', response); 180 }, 181 () => { 182 console.log('put is now completed.'); 183 }); 184 185 } 186 187 188 delbyId(id: string) { 189 this.myhttp.delete(this.myWebapiURL + id).subscribe((res) => { 190 console.log("del ok", res); 191 this.getall(); 192 }, (err) => { 193 console.log("del err", err); 194 }); 195 196 } 197 }
前台代码:
1 <div>patient-component.html</div> 2 3 4 {{results}} 5 6 <h2>ngfor</h2> 7 <div *ngIf=myPatientList> 8 <ul> 9 <li *ngFor="let myPatient of myPatientList"> 10 id:<span style="font-weight:700"> {{myPatient.id}} </span> FirstName :{{myPatient.FirstName}} 11 </li> 12 </ul> 13 14 </div> 15 <div> 16 <input type="text" #txt1 placeholder="请输入要查询的GUID"> 17 <button (click)="getbyId(txt1.value)"> 查询</button> 18 <button (click)="delbyId(txt1.value)"> 删除</button> 19 20 21 <div *ngIf=myPatient> 22 <ul> 23 <li>id:{{myPatient.id}}</li> 24 <li>FirstName :{{myPatient.FirstName}} </li> 25 <li>email:{{myPatient.EmailAddress}}</li> 26 </ul> 27 </div> 28 </div> 29 <div> 30 FirstName :<input type="text" #txtFirstName placeholder="请输入FirstName"> 31 LastName :<input type="text" #txtLastName placeholder="请输入LastName"> 32 <button (click)="httpPostExample(txtFirstName.value,txtLastName.value)"> httpPostExample【新增】</button> 33 <button (click)="httpPutExample(txt1.value,txtFirstName.value,txtLastName.value)"> httpPutExample【修改】</button> 34 35 </div>
。。。。。。。。angular4.3 httpclient end.....
转自:http://www.cnblogs.com/cxd1008/p/7717037.html