2017-11-02 4 views
4
constructor(private http: HttpClient) { 
    } 
    ngOnInit() { 
    this.http.get('url').subscribe(data => { 
    console.log(data); 
    console.log(data.login); 
    }); 
    } 
} 

여기 콘솔에서 로그인으로 데이터를 볼 수 있지만 데이터에 속성 로그인이 없다는 오류가 발생합니다. 인터페이스를 사용하지 않고이 문제를 해결할 수있는 방법이 있습니까? 내가 얻고 자하는 데이터는 꽤 거대하고 미래에 아마도 수정 될 것이므로 어떤 더 좋은 방법이 있을까요? 당신이 결과 필드에 액세스 할 수 브래킷 표기법을 사용하기 때문에각도 httpClient 반환 속성이 ​​개체에 존재하지 않습니다

+0

console.log (data)가 인쇄 한 값을 추가 할 수 있습니까? –

답변

3

docs 상태 HttpClient를 사용하여 ... 위의 예에서

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로 구문 분석하지만 객체가 어떤 모양인지는 알지 못하기 때문입니다.

귀하의 옵션은 답안 (문서와 제가 제안하는 것)을 입력하거나 대괄호 표기법을 사용하는 것입니다.

관련 문제