经过一周的奋战,终于完成了angular httpclinent的所有方法,实现如下图:
?
直接上代码吧,之前的配置直接查看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测试数据ponent.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测试数据" ,
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测试数据" ,
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.....
查看更多关于angular HttpClient post put del 方法的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did222664