【问题标题】:how to create two observable in angular 2?如何在角度 2 中创建两个 observable?
【发布时间】:2017-05-06 09:27:43
【问题描述】:

我在 Angular 2 中使用 Observable 使用 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吗?

【问题讨论】:

  • 你知道这可以通过ngModel 指令实现吗?
  • 但我想知道为什么我尝试使用它

标签: javascript angular rxjs


【解决方案1】:

是的,您可以为输入提供不同的 id 或类,然后在不同的 observables 中使用它们,但不能使用 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 所做的更改以使其正常工作。

【讨论】:

  • 你用过jquery吗?
  • 是的,但如果你喜欢@user5711656,你可以使用 document.getElementById 代替
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
  • 2018-12-01
  • 2020-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多