2016-12-21 4 views
0

Ich verwende Observable in Winkel 2 rxjs mit .I hier ist eine Demo von fromEvent in Plunker machen meine Demo https://plnkr.co/edit/zkgEcdn21CvIKoOycUOy?p=previewWie erstellt man zwei in Winkel 2 beobachtbar?

In meiner Demo Ich nehme two Eingabefeld .Ich zwei verschiedene Beobachter für zwei verschiedene Eingangs verwenden müssen Feld mit keyup Ereignis. aber wenn ich irgendein Eingabefeld wähle, rufe es dieselbe Funktion auf. könnte ich ein anderes id Eingabefeld geben.

Observable.fromEvent(document,'keyup').subscribe(e => { 
     console.log(e.target.value) 

    }); 

i aus diesem Tutorial lerne http://reactivex.io/rxjs/manual/tutorial.html

Erwartet löschte

Ich brauche andere Funktion aufrufen, während verschiedene Eingabefeld auswählen .will ich verschiedene IDs geben?

+0

Sie wissen, dass dies mit 'ngModel' Direktive erreicht werden kann? – echonax

+0

aber ich möchte beobachtbare lernen, warum ich versuche, diese – user5711656

Antwort

0

Ja, Sie können Ihren Eingaben eine andere ID oder Klasse geben und sie dann in verschiedenen Observablen verwenden, jedoch nicht mit fromEvent. Sie müssen stattdessen Observable.create verwenden:

var source = Observable.create(function(o) { 
    $('body').on('keyup', '#test', function(ev) { 

     o.next(ev); 
    }) 
}); 

var sub = source.subscribe(function(ev) { console.log("test 1 keyup", ev) }); 



var source = Observable.create(function(o) { 
    $('body').on('keyup', '#test2', function(ev) { 

     o.next(ev); 
    }) 
}); 

var sub = source.subscribe(function(ev) { console.log("test t keyup", ev) }); 

Werfen Sie einen Blick auf die Änderungen, die ich zu Ihrem plunker gemacht, um es zu arbeiten.

+0

verwenden Sie haben jquery verwendet? – user5711656

+0

yeah, aber Sie können stattdessen document.getElementById verwenden, wenn Sie @ user5711656 mögen – Yaser