ฉันลองวิธีแก้ปัญหาข้างต้นแล้วค่าที่ไปยังแบบจำลองนั้นเป็นค่าที่จัดรูปแบบแล้วส่งคืนและให้ข้อผิดพลาด currencyPipe ให้ฉัน ดังนั้นฉันต้อง
[ngModel]="transfer.amount | currency:'USD':true"
(blur)="addToAmount($event.target.value)"
(keypress)="validateOnlyNumbers($event)"
และในฟังก์ชั่นของ addToAmount -> การเปลี่ยนแปลงความไม่ชัดทำให้ ngModelChange ให้ปัญหาเคอร์เซอร์แก่ฉัน
removeCurrencyPipeFormat(formatedNumber){
return formatedNumber.replace(/[$,]/g,"")
}
และลบค่าอื่น ๆ ที่ไม่ใช่ตัวเลข
validateOnlyNumbers(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}