Javascript 如何在angular2中使用RxJS?

Javascript 如何在angular2中使用RxJS?,javascript,angular,Javascript,Angular,有没有办法在angular 2中编写这样的代码 var closeButton1 = document.querySelector('.close1'); var close1ClickStream = Rx.Observable.fromEvent(closeButton1, 'click'); 我试过很多方法把它们放在角度2分量上,但效果不好! 我试过这样的东西 组件技术 @ViewChild('delete') closeButton1: ElementRef; close1Click

有没有办法在angular 2中编写这样的代码

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>

  • 删除

  • 问题是,即使使用AfterContentInit,我也无法访问该元素。此外,如果我可以访问它,我可以使用
    可观察的.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>
    
    点击
    
    无论如何,如果你想用可观察的东西来做这件事,你需要
    elementRef.nativeElement
    此处提供,只需实现
    OnInit
    方法,您就可以开始了。

    是的,您可以做到:

    import { Observable } from 'rxjs/Observable';
    //...
    
    @ViewChild('delete') closeButton1: ElementRef;
    
    close1ClickStream = Observable.fromEvent(closeButton1, 'click');