【问题标题】:What's supposedly "Iterable" isn't所谓的“可迭代”不是
【发布时间】:2017-10-03 20:17:45
【问题描述】:

我只是不知道现在发生了什么。我根据以前的(和实际的)有效的项目支持此代码。这个具有完全相同的代码结构,并且以某种方式给了我不同的输出。

截图:

提供者:

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>

【问题讨论】:

  • 根据您的日志,看起来您的 JSON 实际上是 { regions: [] } 而不仅仅是一个数组。因此,您的代码应该是 this.regions = res.regions

标签: angular http typescript observable ionic3


【解决方案1】:

把你的班级改成

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

【讨论】:

  • 我绝对是个白痴。我之前已经多次尝试过res.regions,并给了我一个undefined 异常。无奈之下,我急忙跑到这里来大喊大叫。我几乎没有意识到我一直在做res.region(错过了s!!!)如果我已经很熟悉了,我想我不应该坚持外国命名约定矿。还是谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 1970-01-01
相关资源
最近更新 更多