Resort Listing
Let's update our application to list all of the ski resorts.
Update AppComponent
Open src/app/app.component.ts.
First, create a new resorts property to contain the array of Resort objects that we'll obtain from the state object:
resorts: Resort[];Next, update the ngOnInit lifecycle method:
ngOnInit() {
this.store = store;
this.store.dispatch(new LoadResorts());
this.store.subscribe(state => {
this.resorts = state.resort.resorts;
this.sidenavHidden = state.sidenav.hidden;
console.log(state);
});
}- First,
dispatch()theLoadResortsaction. - Then, set the
resortsproperty from the state object.
Finally, let's create an identifyResort method that can be used as the tracking function for the NgForOf directive:
identifyResort(resort: Resort) {
return resort.id;
}Update Template
Open src/app/app.component.html and add an unordered list to display the ski resorts with a link to their website:
<ul *ngFor="let resort of this.resorts; trackBy: identifyResort">
<li>
<a [attr.href]="resort.url" target="_blank">{{resort.name}}</a>
</li>
</ul>Serve
Go ahead and serve the project:
npm run start:simple-store
yarn run start:simple-storeInspect the console for state changes as the resorts are loaded as well as inspect the GET network request to load the resorts from the REST API.