通过 http 响应 Angular2 进行迭代

Iterating through http response Angular2

本文关键字:迭代 Angular2 http 响应 通过      更新时间:2023-09-26

所以我对 Angular2 很陌生,试图迭代 http 响应我有点卡住了。使用以下代码:

  ngOnInit() {
    this._meetService.getAuth( "meets/"+ this.meetId + "/participants").subscribe(
      meet => {
        this.participants = meet.participants;
        this.organizators = meet.organizators;
        console.log(this.participants);
      },
      error => console.log("error")
    )
  }

我得到this.participantsthis.organizators的值,但有以下内容:

  ngOnInit() {
    this._meetService.getAuth("meets/"+ this.meetId + "/participants").subscribe(
      meet => {
        meet.participants.forEach(participant => this.members.push(participant));
        meet.organizators.forEach(organizator => this.members.push(organizator));
        console.log(this.members);
      },
      error => console.log("error")
    )
  }

我记录了错误。这怎么可能?

这里是 getAuth() 方法:

@Injectable()
export class MeetService {
  constructor(private http: Http, public api: ApiConfig, private _routeParams: RouteParams) {}
  getAuth(path: string) {
    var auth = this.api.headers();
    auth.append("X-Auth-Key", "azertyuiop...");
    return this.http.get(this.api.getPath(path), {headers: auth})
      .map(res => <any> res.json())
  }
}
我认为

您正在推动this.members这是undefined.尝试先初始化它

ngOnInit() {
    this._meetService.getAuth("meets/"+ this.meetId + "/participants").subscribe(
      meet => {
        this.members = [];
        meet.participants.forEach(participant => this.members.push(participant));
        meet.organizators.forEach(organizator => this.members.push(organizator));
        console.log(this.members);
      },
      error => console.log("error")
    )
  }

设置members: Array<any>只是告诉 TypeScript 有一个 member 属性应该是类型 Array ,但它不会为您创建属性。