我有以下代码
Observable.fromEvent(this.inputref.nativeElement, 'keyup')
.map((evt: any) => evt.target.value)
.filter(res => {
if (res.length > 1) {
return true;
} else {
}
}).debounceTime(1000)
.distinctUntilChanged()
.subscribe((text: string) => this.callmethod(text.trim()));
}
上面的代码可以正常工作,但是问题是,当输入被类似的代码填充时也会被触发
this.inputref.nativeElement.value = "value"
或当绑定变量如下所示时
<input type="text" #inputref value="{{input_val}}" />
this.input_val = "text value"
如何使其仅在用户按下键时才触发,而不是在通过逻辑输入时触发。
谢谢
答案 0 :(得分:0)
尝试以下代码:
.html文件:
<input type="text" [formControl]="testControl" (input)="testMethod()">
在.ts文件中:
创建表单控件:
testControl: FormControl = new FormControl('');
创建输入更改方法:
testMethod(){
console.log('Test control Change event', this.testControl.value);
}
以下代码用于从代码端设置值:
this.testControl.setValue('Hello');