【发布时间】:2016-10-10 13:10:54
【问题描述】:
我有一个组件包装另一个组件<inner-component> 并绑定到InnerComponent.innerChanged() 自定义事件。我想使用@output 属性冒泡,但我也想消除输出抖动。
如何使用RxJS .debounce() 或.debounceTime() 来执行此操作?
类似这样的:
import {Component, Output, EventEmitter} from 'angular2/core';
import 'rxjs/add/operator/debounce';
import 'rxjs/add/operator/debounceTime';
@Component({
selector: 'debounced-component',
template: `
<div>
<h1>Debounced Outer Component</h1>
// export class InnerComponent{
// @Output() innerChanged: new EventEmitter<string>();
// onKeyUp(value){
// this.innerChanged.emit(value);
// }
// }
<input #inner type="text" (innerChange)="onInnerChange(inner.value)">
</div>
`
})
export class DebouncedComponent {
@Output() outerValueChanged: new EventEmitter<string>();
constructor() {}
onInnerChange(value) {
this.outerValuedChanged.emit(value); // I want to debounce() this.
}
}
【问题讨论】:
-
好像是this question的副本
-
我认为不一样,因为我不能使用
Observable.fromEvent(),而且我没有FormControl.valueChanges。this.outerValuedChanged.debounce(500).emit(value)似乎不起作用...
标签: javascript angular rxjs