2017-05-05 73 views
-1

我只是不知道现在发生了什么。我支持这个代码针对以前的(实际的)可行的项目。这个代码结构完全一样,不知何故,它给了我不同的输出结果。据称“可迭代”的东西不是

截图:

This s***.

提供者:

startRestRequest(routeSlug: string): Observable<any[]> { 
    let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }); 
    let options = new RequestOptions({ headers: headers }); 

    return this.http.post('http://127.0.0.1:8000/api/' + routeSlug, "super_secret_key=super_secret_key", options) 
     .map(res => res.json()); 
    } 

类:

ionViewDidLoad() { 
    console.log('ionViewDidLoad Regions'); 
    this.laravelApiSvc.startRestRequest('regions').subscribe(res => { 
     console.log(res); 
     this.regions = res; 
    }); 
    } 

查看:

<ion-content padding> 
    <div> 
    <ion-list *ngFor="let region of regions"> 
     <ion-item>{{ region.name_full }}</ion-item> 
    </ion-list> 
    </div> 
</ion-content> 
+3

根据你的日志,它看起来像你的JSON实际上是'{地区:[]}',而不是简单的数组。因此,你的代码应该是'this.regions = res.regions' – Rob

回答

0

改变你的类作为

ionViewDidLoad() { 
    console.log('ionViewDidLoad Regions'); 
    this.laravelApiSvc.startRestRequest('regions').subscribe(res => { 
     console.log(JSON.stringify(res.regions)); 
     this.regions = res.regions; 
    }); 
    } 
+0

我是一个绝对白痴。我已经多次尝试过'res.regions',并且给了我一个'undefined'的异常。出于挫折,我匆匆来到这里发出嘘声。 没想到,我知道我在做'res.region'的整个时间__(失踪了's'!)__ 我想我不应该拘于国外的命名约定,如果我已经很舒服与我的。不管怎么说,还是要谢谢你! –