Skip to content

Instantly share code, notes, and snippets.

@petyosi
Created February 12, 2018 11:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save petyosi/96053e393ef8a284756700ed3e59fd31 to your computer and use it in GitHub Desktop.
Save petyosi/96053e393ef8a284756700ed3e59fd31 to your computer and use it in GitHub Desktop.
<div *ngFor="let athlete of athletes">
<span>{{athlete.id}}</span>
<span>{{athlete.name}}</span>
<span>{{athlete?.country?.name}}</span>
<span>{{athlete?.results?.length}}</span>
</div>
import {Component, OnInit} from '@angular/core';
import {AthleteService} from './services/athlete.service';
import {Athlete} from './model/athlete.model';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
private athletes: Athlete[];
constructor(private athleteService: AthleteService) {
}
ngOnInit() {
this.athleteService.findAll().subscribe(
athletes => {
this.athletes = athletes
},
error => {
console.log(error);
}
)
}
}
import {Country} from './country.model';
import {Result} from './result.model';
export class Athlete {
id: number;
name: string;
country: Country;
results: Result[];
}
import {Injectable} from '@angular/core';
import {Athlete} from '../model/athlete.model';
import {Http, Response} from '@angular/http';
import 'rxjs/add/operator/map'
import 'rxjs/add/operator/catch';
import {Observable} from 'rxjs/Observable';
@Injectable()
export class AthleteService {
private apiUrl = 'http://localhost:8090/athletes';
constructor(private http: Http) {
}
findAll(): Observable<Athlete[]> {
return this.http.get(this.apiUrl)
.map((res: Response) => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
}
}
export class Country {
id: number;
name: string;
}
import {Sport} from './sport.model';
export class Result {
id: number;
age: number;
year: number;
date: string;
gold: number;
silver: number;
bronze: number;
sport: Sport;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment