我有一个指令如下
@Directive({
selector: '[debounce]'
})
export class DebounceDirective {
@Output()
public onchange = new EventEmitter<any>();
@Input('debounce')
public debounceTime: number = 500;
private isFirstChange: boolean = true;
constructor(public model: NgControl) {
}
ngOnInit() {
this.model.valueChanges
.debounceTime(this.debounceTime)
.distinctUntilChanged()
.subscribe(event => {
debugger;
if (this.isFirstChange) {
this.isFirstChange = false;
} else {
this.onchange.emit(event);
}
});
}
}
Html
<input type="text" [(ngModel)]="admin.Name" [debounce]="500" (onchange)="updateField($event)" />
当事件被触发时我只获得输入的值,但我需要整个事件。在订阅中我想要完整的事件。请帮帮我。
答案 0 :(得分:1)
valueChanges
Observable仅发出输入字段的值。不是整个事件对象。
也许您可以传递FormControl
instead的实例,然后注册registerOnChange
function
我不认为这些类中的任何一个都有一个发出更改事件的Observable,所以我猜你必须自己使用Subject
或Observable.create()
。