我需要从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?
答案 0 :(得分:2)
我刚刚发现表单元素具有返回Observable的valueChanges属性:
valueChanges:Observable每次发送一个事件的值 控件在UI中或以编程方式更改。