Tôi có một thành phần bao bọc một thành phần khác <inner-component>
và liên kết với sự kiện tùy chỉnh InnerComponent.innerChanged()
. Tôi muốn bong bóng bằng cách sử dụng một tài sản @output
, nhưng tôi cũng muốn debounce đầu ra.làm cách nào để tôi loại bỏ @Output của một thành phần bên trong?
Làm cách nào để sử dụng RxJS
.debounce()
hoặc .debounceTime()
để thực hiện việc này?
Something như thế này:
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.
}
}
Có vẻ như bản sao của [câu hỏi này] (http://stackoverflow.com/a/36849347/2435473) –
Tôi không nghĩ rằng nó giống bởi vì tôi không thể sử dụng 'Observable.fromEvent()' và tôi không có 'FormControl.valueChanges'. 'this.outerValuedChanged.debounce (500) .emit (giá trị)' dường như không hoạt động ... – michael