Skip to content

Commit b31e807

Browse files
committed
Http get, Error handlings, Retrieving server data.
Dynamically loading form data(select list) languages from the server. Retreiving a server generated dummy ID.
1 parent a2ea07c commit b31e807

File tree

3 files changed

+28
-7
lines changed

3 files changed

+28
-7
lines changed

src/app/home/home.component.html

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
<div class="container">
1+
<h3 *ngIf="languages.length == 0">Loading form.......</h3>
2+
<div class="container" *ngIf="languages.length > 0">
23
<h4>Employee Form</h4>
34
<form #form="ngForm" (submit)="submitForm(form)" novalidate>
45
<!-- FirstName field -->

src/app/home/home.component.ts

+12-5
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,29 @@ import { NgForm } from '@angular/forms';
1212
export class HomeComponent{
1313

1414
constructor(private formPoster: FormPoster){
15-
15+
this.formPoster.getLanguages()
16+
.subscribe(
17+
data => this.languages = data.languages,
18+
err => console.log('get error: ', err)
19+
);
1620
}
1721

22+
//languages = ["English", "Spanish", "Other"]; //hardcoded values in select list for primary languages.
23+
languages = []; //get the values from the server.
24+
1825
submitForm(form: NgForm){
1926
this.validatePrimaryLanguage(this.model.primaryLanguage);
2027
if(this.hasPrimaryLanguageError)
21-
return;
28+
return;
2229

2330
this.formPoster.postEmployeeForm(this.model)
2431
.subscribe(
2532
data => console.log('success: ', data),
26-
err => console.log('error: ', err)
27-
)
33+
err => console.log('post error: ', err)
34+
);
35+
2836
}
2937

30-
languages = ["English", "Spanish", "Other"];
3138
hasPrimaryLanguageError: boolean = false;
3239

3340
model = new Employee('', '', false, '', 'default');

src/app/services/form-poster.service.ts

+14-1
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,23 @@ export class FormPoster {
1414
return body.fields || { };
1515
}
1616

17+
extractLanguages(res: Response){
18+
let body = res.json();
19+
return body.data || { };
20+
}
21+
22+
1723
private handleError(error: any){
18-
console.error('post error: ' + error);
24+
console.error('error: ' + error);
1925
return Observable.throw(error.statusText);
2026
}
27+
28+
getLanguages():Observable<any>{
29+
return this.http.get('http://localhost:3100/getlanguages')
30+
.map(this.extractLanguages)
31+
.catch(this.handleError)
32+
}
33+
2134
postEmployeeForm(employee: Employee):Observable<any>{
2235
let body = JSON.stringify(employee);
2336
let headers = new Headers({ 'Content-type': 'application/json' });

0 commit comments

Comments
 (0)