从Ionic 2表单输入元素更改事件

时间:2017-03-16 13:56:12

标签: angular typescript ionic2

我需要从Ionic 2表单元素创建一个Observable。

有一个方便的事件函数,Observable.fromEvent,但我引用了FormBuilder中的表单元素,而不是真实元素。当然我可以从DOM中获取,但我认为有更好的方法。

当前状态

我使用Form Buidler服务声明表单元素:

this.myForm = this.fb.group({
  elem1: new FormControl('elem1'),
  elem2: new FormControl('elem2'),
  elem3: new FormControl('elem3'),
  elem4: new FormControl('elem3')
});

this.formInputElem1: AbstractControl = this.myForm.get('elem1');

通常我会这样做:

Observable.fromEvent(this.formInputElem, 'ionChange');

但是this.formInputElem但是第一个Observable.formEvent参数应该是EventTargetLike,而形式elem是一个AbstactControl。

我尝试将formInputElem1转换为FormControl并检查是否有任何函数返回DOM elem或EventTargetLike而没有运气。

EventTargetLike是“将事件处理程序附加到的DOMElement,事件目标,Node.js,EventEmitter,NodeList或HTMLCollection。”

那么,如何从Ionic 2输入表单元素中获取一个observable?

1 个答案:

答案 0 :(得分:2)

我刚刚发现表单元素具有返回Observable的valueChanges属性:

  

valueChanges:Observable每次发送一个事件的值   控件在UI中或以编程方式更改。