2017-12-27 19 views
0

나는 응용 프로그램의 컨텍스트에 따라 다른 방식으로 응답하고 싶은 뜨거운 RxJS Observable을 가지고있다. 하위 구성 요소가 주제에 가입하는 경우 제목이 지침에 의해 차단 일부 글로벌 행동을 기반으로 새로운 이벤트를 방출, 그러나 나는Angular 서비스에서 RxJS Subject의 문맥 처리

  • 를 원하는, 그 아이가
  • 그렇지 않으면 이벤트를 처리해야하는을 사용 전역 처리기

제목에서 구독자 수를 구할 수 있으며 전역 구독자에게 여러 구독자가있는 경우이를 무시할 수 있지만 API의 일부가 아니기 때문에 오른쪽이 아닐 수도 있습니다. 그것을 처리하는 방법. 그래서 이것을하는 올바른 방법은 무엇입니까?

또한 글로벌 이벤트 처리기가 지시문, 서비스 또는 새 구성 요소에 있어야합니까?

+0

글로벌 처리기는 옵저버 자체입니까? – martin

+0

@martin 전역 처리기는 제목을 구독 할 수 있습니다. 내가 생각하기에 사건이 발생했다는 것을 알기 위해서는해야 할 것입니다. – Keith

답변

0

전역 이벤트 주체를 전역 app.service에 넣고 구독을 위해 다른 구성 요소에 삽입 할 수 있습니다.

이상적인 구성 요소는 복잡한 서비스를 처리하기 위해 자체 서비스를 제공해야하지만 때로는 글로벌 서비스를 직접 주입하여 코드를보다 깨끗하게 유지할 수 있다고 생각합니다. 그렇지 않으면 완전히 격리를 원하거나 UI 드롭 다운 목록과 같이 구성 요소를 광범위하게 재사용해야한다면 @Output 이벤트를 발생시키는 것이 좋습니다 (btw 각도 EventEmitter는 Subject를 상속받습니다) 및 @Input을 사용하여 변수를 가져 오는 것이 좋습니다.