서버에서 가져온 데이터를 처리하는 각도 2 RC5의 사용자 지정 파이프가 구현되었습니다. 내가 가지고있는 문제는 파이프가 서버에 호출하는 곳인 ngOnInit
전에 실행된다는 것입니다.ngOnInit 전에 실행되는 각도 2 파이프
테스트에서 이미 채워진 목록을 파이프에 전달했으며 모든 것이 예상대로 작동합니다. 유일한 문제는 페이지가 렌더링 될 때 파이프가 실행된다는 것입니다. 그리고 그 경우 목록은 비어 있습니다.
페이지 렌더링을 지연시켜 파이프가 실행될 때 서버에서 데이터를 가져올 수있는 방법이 있습니까?
이
내 코드의 샘플입니다ngOnInit() {
Observable.forkJoin([
this.testService.get(),
this.multilingualService.get(localStorage.getItem('currentPage'))
]).subscribe(servicesResult => {
this.mainList = servicesResult[0];
this.pageMultilinguals = servicesResult[1];
},
error => this.handleError(error));
}
파이프
구성 요소
@Pipe({name: 'multiLang'})
export class MultilingualPipe implements PipeTransform {
transform(value: string, pageMultilinguals: Multilingual[], context: number): string {
for (let i = 0; i < pageMultilinguals.length; i++) {
if (pageMultilinguals[i].reference === value && pageMultilinguals[i].contexTypeId === context) {
return pageMultilinguals[i].value;
}
}
}
}
템플릿
<span>{{ 'Test' | multiLang: pageMultilinguals: 9 }}</span>
당신이 빈 데이터에 대한 검사를 추가 할 수 귀하의 파이프에 그냥 그 경우 원래 값을 반환? – rook
저는 템플릿에 간단한 예제를 넣었습니다. 이것은 다국어로 된 참조 용이므로 'Page_Header_1'이라는 참조를 가질 수 있으며 그 값을 되 찾을 수 있습니다. –