![](/img/trans.png)
[英]How to detect in Angular 8 whether a value in angular is changed by user or a method call has changed it
[英]How to detect changes in Component when user has changed something on the view in Angular 2?
假设用户更改了输入类型的值(如单选按钮,输入文本,输入文本区域等),我正在尝试检测更改。
<input type="text" pInputText [(ngModel)]="mileage"/>
我不想使用(ngModelChange)=“detectChanges($ event)”来检测我需要使其变为通用的变化,以便我可以使用整个组件的输入类型
<form #myForm>
<input type="text" pInputText [(ngModel)]="mileage" name="xxx"/>
...
</form>
class MyFormComponent {
@ViewChild('myForm') myForm:NgForm;
ngAfterViewInit() {
this.myForm.valueChanges.subscribe(val => console.log(val));
}
}
https://angular.io/docs/ts/latest/cookbook/form-validation.html#!#template2也在一个示例中使用此方法。
您还可以将mileage
为getter / setter,然后您可以将代码放入在值更改时执行的setter中,但是需要对输入绑定的每个属性执行此操作。
你也可以添加
@HostListener('change', ['$event'])
onChange(e) {
console.log(e);
}
@HostListener('input', ['$event'])
onInput(e) {
console.log(e);
}
您需要为可能感兴趣的每个事件添加一个侦听器。 浏览器之间存在一些差异,它们针对什么编辑操作触发了哪些事件。 ngModel
抽象出一些您可能需要照顾自己的差异。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.