2016-12-21 6 views
0

Я использую Observable в угловом 2 с помощью rxjs .I сделать демо fromEvent в plunker вот мой демо https://plnkr.co/edit/zkgEcdn21CvIKoOycUOy?p=previewкак создать два наблюдаемых в угловых 2?

В моем демо я беру two поле ввода .I нужно использовать два различных наблюдателя для двух различных входных поле с использованием keyup событие. , но когда я выбираю любое поле ввода, он вызывает такую ​​же функцию. могу ли я дать разные поля ввода id.

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

    }); 

я учусь из этого учебника http://reactivex.io/rxjs/manual/tutorial.html

Ожидаемого из положить

нужно вызвать другую функцию при выборе другого поля ввода .will я даю разные идентификаторы?

+0

Вы знаете, что это может быть достигнуто с помощью директивы 'ngModel'? – echonax

+0

, но я хочу узнать, что, почему я пытаюсь использовать этот – user5711656

ответ

0

Да, вы можете дать своим входам другой идентификатор или класс, а затем использовать их в разных наблюдаемых, но не используя fromEvent. Вы должны использовать Observable.create вместо:

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) }); 

Посмотрите на изменения, которые я сделал для вашей plunker, чтобы заставить его работать.

+0

, вы использовали jquery? – user5711656

+0

да, но вы можете использовать document.getElementById вместо этого, если вам нравится @ user5711656 – Yaser

Смежные вопросы