Mam element, który opakowuje inny składnik <inner-component>
i wiąże się z niestandardowym zdarzeniem InnerComponent.innerChanged()
. Chcę spartanować za pomocą właściwości @output
, ale chcę również wycofać dane wyjściowe.Jak zrezygnować z @Output komponentu wewnętrznego?
Jak użyć tej opcji, aby użyć RxJS
.debounce()
lub .debounceTime()
?
coś takiego:
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.
}
}
Wygląda duplikatu [to pytanie] (http://stackoverflow.com/a/36849347/2435473) –
nie sądzę, że to ten sam, bo nie można używać 'Observable.fromEvent()' i nie mam 'FormControl.valueChanges'. 'this.outerValuedChanged.debounce (500) .emit (wartość)' nie wydaje się działać ... – michael