2017-03-08 9 views
0

角度2のようなコードを書く方法はありますか?angular2でRxJSを使用するには?

var closeButton1 = document.querySelector('.close1'); 
var close1ClickStream = Rx.Observable.fromEvent(closeButton1, 'click'); 

角度2のコンポーネントに配置する方法はさまざまですが、うまくいきませんでした。

@ViewChild('delete') closeButton1: ElementRef; 

close1ClickStream = Observable.fromEvent(closeButton1, 'click'); 

component.html

<!-- this code is inside *ngFor --> 
<li><a #delete [routerLink]="['/update', item.id]">delete</a></li> 

私はこの

component.tsのようなものを試してみました問題は、私は私がAfterContentInitを使用しても、要素にアクセスすることができないということです。さらに、私がそれにアクセスすることができたら、Observable.fromEvent(...)を使うことができますか?

@Directive({ 
    selector: '[click-handler]' 
}) 
export class ClickHandler { 

    constructor(public elementRef: ElementRef,) { 
    } 

    @HostListener('click', ['$event']) 
    onClick(e) { 
    // do staff here 
    } 
} 

使い方とにかく

<button click-handler> click </button> 

イベントを処理する

答えて

1

使用ディレクティブあなたが観測を使用してそれを実行したい場合は、単にOnInitメソッドを実装して、ここに提供されています elementRef.nativeElementが必要になりますし、あなたは、行ってもいい。

0

はい、あなたはそれを行うことができます。

import { Observable } from 'rxjs/Observable'; 
//... 

@ViewChild('delete') closeButton1: ElementRef; 

close1ClickStream = Observable.fromEvent(closeButton1, 'click'); 
関連する問題