对象

时间:2017-11-02 12:20:44

标签: angular angular4-httpclient

  constructor(private http: HttpClient) {
  }
  ngOnInit() {
   this.http.get('url').subscribe(data => {
     console.log(data);
     console.log(data.login);
   });
  }
}

在这里,我可以在控制台中看到登录的数据,但是我收到一条错误,说数据上没有属性登录。没有使用接口,有没有解决方法?因为我想获得的数据非常庞大,将来可能会被修改,所以还有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

使用HttpClient ...

时的 docs 状态
 this.http.get('/api/items').subscribe(data => {
   // Read the result field from the JSON response.
   this.results = data['results'];
 });
     

在上面的示例中,data['results']字段访问突出,因为您使用括号表示法来访问结果字段。如果您尝试编写data.results,TypeScript会正确地抱怨从HTTP返回的Object没有results属性。那是因为虽然HttpClient将JSON响应解析为Object,但它不知道该对象的形状。

因此,您可以选择键入您的回复(文档和我建议的回复),或者使用括号表示法。