I have a service that I call to pull some data from my rest service. I have an object that I set inside my service with the result from the rest call. The problem is that when I call the get function to return the object I always get undefined. I currently have the call to my service on the application root onInit function.
Any help on how I could load this data and store on the object so next time I need to access it I do not need to make a remote call to my rest service?
Here is my service
import { Injectable } from '@angular/core';
import { Headers, RequestOptions } from '@angular/http';
import { HttpinterceptorService } from './httpinterceptor.service';
import { TopicStatus } from '../interfaces/topicstatus';
import 'rxjs/add/operator/map';
@Injectable()
export class TopicService {
baseUrl: string;
statusObj: TopicStatus[];
constructor(private http: HttpinterceptorService) {
this.baseUrl = '/test/restcall/';
}
getListItems(token: string, topicType: string, topicStatus?: number) {
const headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded'}),
options = new RequestOptions({ headers: headers});
let body = 'ooo=' + token + '&type=' + topicType;
if(topicStatus !== undefined) {
body += '&status=' + topicStatus;
}
return this.http.post(this.baseUrl + 'test/restcall', body, options)
.map((res) => res.json());
}
getTopicStatus(token: string) {
const headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded'}),
options = new RequestOptions({ headers: headers}),
body = 'ooo=' + token;
this.http.post(this.baseUrl + 'test/restcall', body, options).map((res) => {
this.statusObj = res.json();
});
}
}
Thanks for the help.