如何在角度2中创建两个observable?

时间:2016-12-21 03:25:41

标签: javascript angular rxjs

我使用Observable在角度2中使用rxjs。我在plunker中演示了fromEvent 这是我的演示 https://plnkr.co/edit/zkgEcdn21CvIKoOycUOy?p=preview

在我的演示中,我使用two输入字段。我需要使用keyup事件对两个不同的输入字段使用两个不同的观察者。 但是当我选择任何输入字段时,它会调用相同的函数。我可以为输入字段提供不同的id吗?

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

    });

我正在学习本教程 http://reactivex.io/rxjs/manual/tutorial.html

预期

我需要在选择不同的输入字段时调用不同的函数。我会给出不同的id吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以为输入提供不同的id或类,然后在不同的observable中使用它们,但不能使用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) });

查看我对http://git.denx.de/?p=u-boot.git;a=commit;h=dcc7dbc73169bb4e39f27c1d95bbf031ccfc1744所做的更改,以使其正常运行。