从后端发送数组到角度2

时间:2018-04-24 09:37:19

标签: arrays angular http get

我尝试使用http.get从后端获取数组。作为回应,我有:[“Item1”,“Item2”,“Item3”]。

constructor(private http:Http){
    this.http.get('api').subscribe(
    data => {this.array = data}
    );
}

上面的代码使this.array = undefined。 我应该用什么来获得数组?

2 个答案:

答案 0 :(得分:0)

请先尝试先控制一下是否收到data,还需要在.map之前使用httpClient(如果您没有使用subscribe

constructor(private http:Http){
    this.http.get('api')
.map(data => {
     console.log(data.json());
     reuturn data.json();
 )
.subscribe(data => {this.array = data});
}

答案 1 :(得分:0)

您正在访问subscribe之外的值,因为get是异步的,您无法获得它的价值。

constructor(private http:Http){
  this.http.get('api').subscribe(
    data => {this.array = data}
    console.log(this.array); <== here it won't be undefined
  );
}

如果您想访问组件中的array,可以使用getter

get Array() {
  return this.array;
}

在组件中,您可以通过this.service.Array

访问它

<强>溶液2

您可以使用async管道。