需要在model.valueChanges中完成事件

时间:2017-04-10 07:11:04

标签: angular rxjs

我有一个指令如下

@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)" />

当事件被触发时我只获得输入的值,但我需要整个事件。在订阅中我想要完整的事件。请帮帮我。

1 个答案:

答案 0 :(得分:1)

valueChanges Observable仅发出输入字段的值。不是整个事件对象。

也许您可以传递FormControl instead的实例,然后注册registerOnChange function 我不认为这些类中的任何一个都有一个发出更改事件的Observable,所以我猜你必须自己使用SubjectObservable.create()