0
내가 구성 요소를 가지고,라고한다.컴포넌트 메소드에서 관찰 만들고, 그는 다음과 같습니다 이벤트 핸들러
클릭, 흐림 등의 "기본"DOM 이벤트에 대한 처리기가 있다면 Observable.fromEvent
을 사용했을 것입니다. 그러나이 경우에는 적용 할 수없는 것 같습니다 관련된 기본 이벤트가 아님). 이 관련된 여러 핸들러가있는 경우 유지 관리가 매우 지루한해야하기 때문에, 더 나은 방법이있을 것 같다
@Component({
template: `
...
<child-component (childEvent)="onChildEvent()"></child-component>
`
})
export class ParentComponent implements OnInit, OnDestroy {
private childEventStream: Observable<void>;
// I am not sure, what is the type of this,
// seems like an internal RxJS thing
private observer: any;
onChildEvent() {
this.observer.next();
}
ngOnInit() {
this.childFinishedStream = Observable.create(
observer => this.observer = observer;
);
}
ngOnDestroy() {
this.observer.completed();
}
}
것을 : 마음에 오는
유일한 것은이 같은 것입니다.
이것이 바로 _child_ 측면에서 수행 된 방법입니다 (그렇지 않은 경우 상위 컨트롤러에서 하위 이벤트를 수신하는 방법은 무엇입니까?) – shylent
아, 이제는 더 잘 이해할 수 있습니다. 당신은 일종의 자식 이벤트가 끝나기를 기다린다. 이것은 angular2 가이드에 대한 것입니다. 데이터가 다운되고, 이벤트가 올라갑니다 .. 서비스를 사용하고 거기에'EventEmitter'를 설정하는 것이 더 낫습니다. 부모 구성 요소가이를 수신하게하고 childComponent가 처리하는 내용을 모두 그대로 두십시오. – PierreDuc
아니요, 죄송합니다. "완료 중"과 아무런 관련이 없습니다. 아마, 나는 그 사건에 대해 나쁜 (암시적인) 이름을 선택했다. 나는 "finish"라는 단어를 생략하는 질문을 편집했다. 그것은 특별한 의미가없는 자식 컨트롤러에 의해 방출되는 이벤트 일뿐입니다. – shylent