2017-12-30 3 views
0

내가 breaking-news.component.ts이 있고 그 안에 내가 속보를 반환하는 API를 읽고 있어요, 내가 사용하는 뉴스를 밀어 해요 :사용하여 업데이트시 데이터를 보관 * ngFor 각도 + 2

this.data = this.data || []; 

this.response.news.forEach(news => { 
this.data.push(news); 
}); 

그리고 breaking-news.component.html

<div *ngFor="let news of data"> 
     <article class="hentry post"> 
      <mat-card> 
       <mat-card-header> 
... 
... 
... 
    <p>{{news.text}}</p> 
... 
... 
... 
       </mat-card-actions> 
      </mat-card> 
     </article> 
    </div> 

뉴스 완벽 *ngFor를 사용하여 내 페이지에 표시되지만 업데이트 내가 페이지를 새로 고침 할 때까지 표시되지 않습니다 API에 올 때 문제가 있기 때문에 data 배열이 API 때까지 새 데이터를 밀어하지 않습니다 다시 심판에 의해 불려지는 페이지를 다시 보냅니다.

답변

0

일부 코드가 각도 영역 밖에서 실행되는 것처럼 보입니다. 이것이 Android가 변경 감지를 실행해야한다는 것을 인식하지 못하는 이유입니다.

당신은 명시 적으로 Angulars 영역

constructor(private zone:NgZone) {} 

foo() { 
    this.zone.run(() => { 
    this.data = this.data || []; 

    this.response.news.forEach(news => { 
     this.data.push(news); 
    }); 
    }); 
} 

내에서 코드를 실행할 수 있지만 아마 알아 내기 위해 더 좋을 것이다 (그리고 가능하면 수정) 코드가 첫번째 장소에있는 영역 외부에서 실행하는 이유.

+0

Angular 4를 사용하는 웹 응용 프로그램에서 NgZone을 사용할 수 있습니까? –

+0

귀하의 질문에 'angular'라는 태그가있어서, Angular 2-5 웹 응용 프로그램에 관한 것입니다 .-). 'NgZone'은 Angular의 주요 구성 요소입니다 - ** ** 질문에 대답 ** –

+0

고마워, 내 문제는 Observable을 사용하지 않는 줄 알았다. 이제 저는 Observable과는 아무런 관련이 없습니다. –

관련 문제