Javascript angular 6 patchValue更新值,但在我提交时不更新?

Javascript angular 6 patchValue更新值,但在我提交时不更新?,javascript,angular,angular6,Javascript,Angular,Angular6,我正在更新模糊上的字段值,使其成为模糊上的货币值。当我键入我的值并离开formcontrol时,blur上的更新会起作用,并将值(20.00)设置为($20.00)或(20.05060)设置为($20.00),但当我单击“生成表单”按钮时,它会将值记录为我的patchValue之前的值。我怎样才能解决这个问题 导出类InvoicesComponent实现OnInit{ invoiceGeneratorForm:FormGroup; 小计:可见; 小计=0; 电流:可观察的; 价格=[]; 构造

我正在更新模糊上的字段值,使其成为模糊上的货币值。当我键入我的值并离开formcontrol时,blur上的更新会起作用,并将值(20.00)设置为($20.00)或(20.05060)设置为($20.00),但当我单击“生成表单”按钮时,它会将值记录为我的patchValue之前的值。我怎样才能解决这个问题

导出类InvoicesComponent实现OnInit{
invoiceGeneratorForm:FormGroup;
小计:可见;
小计=0;
电流:可观察的;
价格=[];
构造函数(公共fb:FormBuilder,私有currencyPipe:currencyPipe){}
恩戈尼尼特(){
this.invoiceGeneratorForm=this.fb.group({
名字:[“”],
姓氏:[“”],
电邮:[“”],
itemsArray:this.fb.array([this.getItems()]),
税:[“”],
小计:[{value:this.subTotal,disabled:true}],
发票总额:['']
});
}
私人价格(指数:数字){
const control=this.invoiceGeneratorForm.controls[“itemsArray”];
const currentControl=control.at(index)['controls']['itemPrice'];
const typeCheck=parseFloat(currentControl.value)| 0;
const subFormatted=this.currencyPipe.transform(
打字检查,
“美元”,
“符号窄”,
"1.2-2"
);
patchValue(子格式,{onlySelf:true,emitEvent:false});
console.log(currentControl);
}
私有getItems(){
返回此.fb.group({
itemName:[“”,验证器。必需],
项目价格:[
"",
验证器([
需要验证器
])
]
});
}
私有addItemRow(){
const control=this.invoiceGeneratorForm.controls[“itemsArray”];
control.push(this.getItems());
}
私有deleteItemRow(索引:编号){
const control=this.invoiceGeneratorForm.controls[“itemsArray”];
控件.removeAt(index++);
}
onGenerateForm(){
log(this.invoiceGeneratorForm.value);
}

}
这是意料之中的。您使用的管道在客户端修改数据,而不更改数据的实际值。管道用于处理数据。请阅读可能会给您提供更多详细信息的内容。

这是有道理的,这也是我喜欢的,我只是认为patchValue和setValue最终会改变实际值。因此,如果您想更改对象(数据),我会在submitIf上应用相同的逻辑是的,但是patchValue本身没有改变我的formControl的值吗?我可能错了,但是我认为您正在混淆数据绑定和客户端数据格式。应用管道(面片)时,实际上并不是在修改数据。是我回答了你的问题还是我弄错了?