2016-06-12 8 views
13

Jaki jest preferowany sposób tworzenia obserwowalnego z zdarzenia onclick przycisku za pomocą Angular 2?Observable from <button> click event w Angular2

Nie jestem pewien, czy za najlepszą praktykę uważa się pobranie elementu natywnego z DOM w kodzie komponentu (jak to zrobić?) Lub czy istnieje inny skrót, o którym nie wiem.

+2

Zobacz https://github.com/angular/angular/issues/4062 –

+0

@MarkRajcok, dzięki, że jest pouczające. Jaki jest dobry sposób na robienie tego dzisiaj? – GBa

Odpowiedz

6

@ przykładem Guntera nie bardzo działa na mnie , ponieważ mój kompilator nie rozpoznał publ.

Oto przykład tego, co pracował dla mnie: modal.component.ts

import { Output, Component } from '@angular/core'; 
import {Subject} from "rxjs/Subject"; 

export class MyModal{ 

    private clickStream = new Subject<Event>(); 

    @Output() observ = this.clickStream.asObservable(); 

    buttonClick(event:Event){ 
     this.clickStream.next(event); 
    } 
} 

Wewnątrz modal.component.html:

<button type="button" class="btn btn-default" (click)="buttonClick($event)">click me</button> 
20

Nie overthink go.

@ViewChild('button') button; 
clicks$:Observable<any>; 

ngOnInit() { 
    this.clicks$ = Observable.fromEvent(this.button.nativeElement, 'click'); 
} 
Powiązane problemy