所以我对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。尝试先初始化

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")
    )
  }


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

关于javascript - 遍历http响应Angular2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35502305/

10-12 00:10
查看更多