Angular 需要model.valueChanges中的完整事件
我有如下指示Angular 需要model.valueChanges中的完整事件,angular,rxjs,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(publ
@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);
}
});
}
}
@指令({
选择器:“[debounce]”
})
导出类去BounceDirective{
@输出()
public onchange=new EventEmitter();
@输入('debounce')
公共去公告时间:编号=500;
private isFirstChange:boolean=true;
构造函数(公共模型:NgControl){
}
恩戈尼尼特(){
此.model.valueChanges
.debounceTime(此.debounceTime)
.distinctUntilChanged()
.订阅(事件=>{
调试器;
if(this.isFirstChange){
this.isFirstChange=false;
}否则{
this.onchange.emit(事件);
}
});
}
}
Html
当触发事件时,我只获取输入值,但我需要整个事件。在订阅中,我需要完整的事件。请帮助我。可观察的
值更改
仅发出输入字段的值。不是整个事件对象
也许您可以传递一个实例,然后注册一个。我认为这些类中没有任何一个具有发出更改事件的Observable,因此我猜您必须使用
Subject
或Observable.create()
来自己完成
<input type="text" [(ngModel)]="admin.Name" [debounce]="500" (onchange)="updateField($event)" />