我是RXJS的新手,我正在尝试将RX observable附加到输入框。到目前为止,我有以下代码可用...
$onInit() {
this.$timeout(() => {
let $input = document.getElementById('input_33');
const weeks$ = this.rx.Observable.fromEvent($input, 'keyup');
const queries$ = weeks$
.map(e => e.target.value)
.distinctUntilChanged()
.debounce(500);
queries$.subscribe(val => console.log(val));
});
}
因此,上面的代码将在keyup上控制记录#input_33的值。
我必须添加$ timeout来等待输入出现在DOM中。有没有更好的方法来做,因为我宁愿不必使用超时?我正在使用Angular 1.5x
答案 0 :(得分:0)
看起来你在执行rx编程时错了。当发现来自可观察事件的事件时,观察者自动被调用。
你不应该使用$ timeout来等待输入出现在DOM中。您可以将代码放在控制器中,因为当控制器被调用时,DOM Ready已经被触发,因此输入字段已经可用。