2016-08-03 3 views
1

비동기로드 된 관찰 가능 객체에서 안전 탐색 연산자를 사용하면 파이프에 전달되는 N 값 (Lectures 배열 대신)에 문제가 있습니다. : 그들은 비동기로로드되면비동기 관측 가능 파이프 및 안전한 각도에서의 안전한 탐색 연산자

<div *ngFor="let lecture of ((lecturesObservable | async)?.lectures | lectureType: 'main')" class="list-group-item"> 

강의 type.pipe.ts는

import { Pipe, PipeTransform } from '@angular/core'; 

import { Lecture } from './lecture'; 

@Pipe({name: 'lectureType'}) 
export class LectureTypePipe implements PipeTransform { 
    transform(allLectures: Lecture[], lectureType: string): Lecture[]{ 
     return allLectures.filter(lecture => lecture.type==lectureType); 
    } 
} 

강의는 파이프없이 미세한 통해 반복된다. 이것은 ng2에서 살아야만하는 것입니까?

답변

0

입력 관찰 가능에 아직 값이없는 경우 비동기 파이프가 설계 상 null로 해석됩니다. 그래서 네, null 입력을 처리하도록 파이프를 설계함으로써, 여러분은 그것으로 살아야 할 것입니다.

+0

덕분에 @Douglas, 명백하게 - 이미 시도했지만 간단하다고 생각했습니다. if (allLectures! == null) 변형이 아름답게 작동합니다! – theotherdy

0

예를 들어 기본값을 제공하는 BehaviorSubject을 사용할 수도 있으므로 아직 값을받지 못했을 때 Angular가 던지지 않습니다.

+1

고마워요 - 나는 여전히 모든 관측 대상과 대상을 파악하려고 노력 중이므로 @Douglas의 간단한 솔루션으로갔습니다. – theotherdy

+0

No prob. 그것은 전적으로 당신의 결정입니다 :) –