Angular 在值更改时更新被动表单中的字段
我想直接将输入的内容格式化为被动形式(最好在显示之前)。 按照我目前的方法,我尝试使用“valueChanges”订阅字段 但这会导致递归,这是可以理解的。每次我更改subscribe字段中的值时,都会再次调用它 因此,我的问题是,如何在显示之前直接编辑输入Angular 在值更改时更新被动表单中的字段,angular,angular-reactive-forms,Angular,Angular Reactive Forms,我想直接将输入的内容格式化为被动形式(最好在显示之前)。 按照我目前的方法,我尝试使用“valueChanges”订阅字段 但这会导致递归,这是可以理解的。每次我更改subscribe字段中的值时,都会再次调用它 因此,我的问题是,如何在显示之前直接编辑输入 导出类NewPaymentComponent实现OnInit{ 付款方式:FormGroup; 构造函数(){} ngOnInit():void{ this.paymentForm=新表单组({ amountFormatted:new Fo
导出类NewPaymentComponent实现OnInit{
付款方式:FormGroup;
构造函数(){}
ngOnInit():void{
this.paymentForm=新表单组({
amountFormatted:new FormControl('0.00',验证器。必需)
});
this.paymentForm.get('amountFormatted').valueChanges.subscribe((change)=>{
这是付款单
.get('amountFormatted')
.setValue(此.formatAmount(更改));
});
}
formatAmount(输入:字符串):字符串{
//…方法体被省略
返回“已更改”;
}
}
在另一次尝试中,我尝试使用pipe
和map
更改该值。然后在点击写入正确的路径,但不用于字段
this.paymentForm
.get('amountFormatted')
.水管(
map((val)=>(val=this.formatAmount(val)),
点击((更改)=>console.log('onTap',更改))
)
.subscribe();
考虑将emitEvent
设置为false
,如下所示:
this.paymentForm.get('amountFormatted').valueChanges.subscribe((change)=>{
这是付款单
.get('amountFormatted')
.setValue(此.formatAmount(更改),{emitEvent:false});
});
非常感谢!这解决了我的问题。我没有注意到选项字段:)