2016-10-12 6 views
0

HTTP GET 요청을 사용하여 내 서버에서 일부 JSON 코드를 검색하고 있습니다. JSON 데이터를 변수에 저장합니다. JSON 데이터에는 분과 초의 두 객체 만 있습니다. 두 객체 모두 지속적으로 값이 변하고 있습니다 (JSON은 타이머를 나타냅니다). 내 문제는, 내가 HTML 템플릿의 값을 보간하면 완벽해진다는 것이다. 하지만 console.log에 JSON 데이터를 저장하려고하거나 배열에 저장하려고하면 데이터가없는 null 또는 Array가 표시됩니다. JSON 객체를 각도 2로 변수에 저장

this.timeService.fetchTime().subscribe(
    (data) => this.timeArray = data); 
console.log(this.timeService); 

는 [= 이미 선언 된 변수 timeArray로 내 JSON 데이터를 저장하여 검색하는 서비스이다. 내 HTML 코드에서 {{timeArray.minutes}}를 사용하면 잘 나타납니다. 내 코드에서 timeArray.minutes를 로컬 변수에 저장하려면 어떻게해야합니까?

+0

{{timeArray.minutes}를 사용할 수 있다면 이미 데이터에 변수를 저장하고있는 것입니다. 문제가 정확히 어디입니까? null을 제공하는 코드를 표시하십시오. – Sefa

+0

console.log (this.timeService.seconds)를 입력하면; '유형 초에 유형 초가 존재하지 않습니다'라는 타이프 스크립트 오류가 표시됩니다. –

+0

'this.timeService'는 ** 데이터를 ** 가져 오는 데 사용하는 클래스 인스턴스입니다. 콜백에서 ** this.timeArray에 데이터를 저장 **합니다. 그래서'console.log (this.timeArray.seconds)'를 시도해보십시오. ** timeService **가 아니라 ** timeArray **입니다. – Travesty3

답변

0

템플릿에 올바르게 표시되면 이미 변수에 저장되어 있습니다.

당신이 할 수있는 또 다른 변수는 분을 만들고 데이터에서 분 값을 전달하는 것입니다.

this.timeService.fetchTime().subscribe(
(data) => { 
    this.timeArray = data; 
    this.minutes = data.minutes; 
}); 
+0

어떤 이유로, 내가 console.log에이 예제에서 보여주는 것처럼 분 var가 "정의되지 않음"이 나타납니다. –

+0

HTTP 호출이 비동기임을 알 수 있습니까? 분이 값으로 지정되면'console.log'를해야합니다. 또한'timeArray'를 선언 한 것처럼 변수를 선언해야합니다. –

관련 문제