I am able to get data from an api using http.get, within http.get console.log showing data but out of http get it showing undefined data even not setting data to class variables in html it is giving error of undefined here is how i am getting data in provider
provider method
if (this.data) {
return Promise.resolve(this.data);
}
return new Promise(resolve => {
this.http.get(SERVER_NAME+'home')
.map(res => res.json())
.subscribe(data => {
this.data = data;
resolve(this.data);
});
});
home.ts
this.homeService.getHomeData().then(data => {
this.homeData = data;
console.log(this.homeData); // here it is showing data.
});
home.html
<ion-slides class="home-slide" autoplay="3000" loop>
<ion-slide *ngFor=" let banner of homeData">
<img src="assets/images/1_2.jpg" class="img-responsive" alt="">
</ion-slide>
</ion-slides>
API data
here is my json data coming from api, I am creating just one request to fetch home page data, data is little complex.
{
"banners": [
{
"image": "http://localhost/upload/banner-1.jpg"
},
{
"image": "http://localhost/upload/banner-12.jpg"
}
],
"watch_brands": [
{
"name": "A",
"slug": "a"
},
{
"name": "Brand from app",
"slug": "brand-from-app"
},
],
"watches": [
[
{
"name": "Geneve White Dial Y/G",
"slug": "geneve-white-dial-yg",
"brand_name": "Test Brand for watch",
"images": {
"200": "http://localhost/dwe/cdv_photo_00144.jpg",
"400": "http://localhost/dwe/cdv_photo_00144.jpg"
}
},
{
"name": "Vintage Diamond Bezel and Bracelet White Dial Y/G",
"slug": "vintage-diamond-bezel-and-bracelet-white-dial-yg",
"brand_name": "Test Brand",
"images": {
"200": "http://localhost/dwe/cdv_photo_00530.jpg",
"400": "http://localhost/dwe/cdv_photo_00530.jpg"
}
}
]
]
}
other version of json data just for banners
[
{
"image": "http://localhost/upload/banner-12.jpg"
},
{
"image": "http://localhost/upload/banner-1.jpg"
}
]