나는 (이 데이터를 가져 후)는 부모 구성 요소의에서 페이지 번호와 pageSize가을 얻는 paging.component
있습니다.각도 4 - 각도 4를 사용 OnChanges 내부 formcontrol.setValue는()()
paging.component
은 OnChanges
라이프 사이클 후크를 사용하여 @Input
의 변경 사항을 검색합니다.
paging.component
또한 페이지 크기을 변경할 수있는 <select>
입력이 있습니다.
OnInit
단계에서 <select>
은 페이지 크기이 상위 구성 요소에서 전달됩니다.
당신이 <select>
으로 pageSize가을 변경하면 모든 작품을 좋아하지만, 나는 때때로 (원래 값과 같은) 다른 값으로 상위 구성 요소에서 pageSize가을 변경하고 싶습니다.
그러나 부모 구성 요소에서 페이지 크기을 변경하면 <select>
입력이 변경되지 않습니다. (다른 모든 것들이 올바르게 작동한다고해도).
if (this.pageSizeFG) {
this.pageSizeCtrl.setValue(this.pagesize);
}
그러나,이 오류를 제공합니다 :
은 내가 ngOnChanges
방법에 다음 코드를 추가하는 시도
페이징은 또한 내가하려고하면 1 페이지에 자신을 다시 설정하라는 유지하는 것ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'false'. Current value: 'true'.
다른 페이지로 이동하십시오.
다른 라이프 사이클 후크 인 ChangeDetectorRef
과 ngZone
을 살펴 보았지만 문제가 악화 된 것으로 보입니다.
오류를 나타내는 plnkr here을 만들었습니다. 당신이 paging.component.ts
에 가서 this.pageSizeCtrl.setValue(this.pagesize);
으로 줄을 주석으로 경우
후 모든 것이 <select>
가 업데이트되지 않습니다 를 제외하고 잘 작동합니다.