2017-04-06 4 views
2

저는 Rxjs와 Angular 4를 처음 사용하기 때문에이를 수행하는 방법에 관해 머리를 쓸 수 없습니다.각도 4 - 이벤트를 관찰 가능한 스트림으로 변환

는 틀 :

<div class="btn-group cp"> 
    <input [colorPicker]="bgColor" 
    (colorPickerChange)="colorChanged()" 
    [style.background]="bgColor"> 
</div> 

colorChanged은() MouseMove 이벤트에 colorPickerChnage에 의해 불려갑니다. 내 구성 요소에서이 같은 것을 갖고 싶어 :

colorChanged$.subscribe(data => console.log(data)) 

이 (내가 관찰로 그것을 가지고 싶은 이유는 일부 디 바운스 및 더 많은 가입자를해야합니다, 즉이다.) 나는 그것을 해결

+0

당신은'EventEmitter'에 가입하거나 기능에서 자신을 방출 또는 위해 HostListener' '같은 것을 사용할 수있는' mousemove' 이벤트가 발생했습니다. – Dylan

답변

3

.

템플릿 :

<div class="btn-group cp"> 
    <input [colorPicker]="bgColor" 
    (colorPickerChange)="colorChanged(bgColor)" 
    [style.background]="bgColor"> 
</div> 

그리고 다음 구성 요소 :

import { Subject } from 'rxjs'; 

    colorChanged$ = new Subject<string>(); 

    colorChanged(bgColor) { 
    this.colorChanged$.next(bgColor) 
    } 

    ngOnInit() { 
    this.colorChanged$.subscribe(v => console.log(v)); 
    } 
+2

이 방법이 효과적 일지는 모르지만,이 방법은 "Rx"방법이 아닙니다. Ben Lesh의 기사를 읽으십시오. [Subject of Subject (RxJS에서)] (https://medium.com/@benlesh/on-the-subject-of-subjects-in-rxjs-2b08b7198b93) – wood1y

+0

아마 다음과 같이 할 수 있습니다. Observable.fromEvent (event.target, 'event type') 사용 이것을보십시오 - [link] (https://www.learnrxjs.io/operators/creation/fromevent.html) – Awadhoot

+0

event.target은 무엇이 될까요? 이 경우, fromEvent를 colorPickerChange에 연결하는 방법은 무엇입니까? fromEvent 예제는 가장 기본적인 사용 사례, 문서의 클릭 이벤트 만 표시하며 DOM 이벤트에 의존하는 것은 '각도'방식이 아닙니다. –

관련 문제