я использую angular6. и использовал десятичную функцию преобразования для преобразования входных значений для двух десятичных дворцов. это работает нормально, но проблема в том, что я не могу ввести суммы более 6 цифр.
вот код html код:
<div class="ui-grid-col-12">
<input (blur)="numberTransform()" pInputText type="number" min="0" placeholder="Please enter amount" formControlName="amount"/>
</div>
это код ts:
decimal: DecimalPipe = new DecimalPipe('en-US');
currency: CurrencyPipe = new CurrencyPipe('en-US');
this.form = this.formBuilder.group(
{
accNumber: ['', [Validators.required]],
reAccNumber: [
'',
[
Validators.required
],
],
assessmentNo: ['', [Validators.required]],
cusMobileNo: [
'',
[
Validators.required,
PhoneNumberValidator()
]
],
amount: ['', [
Validators.required,
NumberValidator(true, true)
]],
amountWithCharge: ['', []],
pinNumber: ['', [
Validators.required,
NumberValidator(true, false, 4)
]],
note: ['', [Validators.maxLength(300)]],
},
{
validator : MatchValidator(
'accNumber',
'reAccNumber'
)
}
);
numberTransform() {
//.replace(',', '') to remove the commas sepertion
this.form.get('amount').setValue(this.decimal.transform(this.form.get('amount').value, '1.2-2').replace(',', ''));
this.getAmountWithCharge();
}
getAmountWithCharge() {
const amount = this.form.get('amount').value;
const data = {
txnCode : Number(this.txnCode),
profileId : this.sessionProfileService.geProfileId(),
amount : amount
};
this.indexService.getAmountCharge(data).subscribe(
response => {
if (response.resultCode === 1000) {
this.amountWithCharge = this.decimal.transform(Number(response.returnObject) + Number(amount), '1.2-2').replace(',','');
//this.form.get('amountWithCharge').setValue(this.decimal.transform(Number(response.returnObject) + Number(amount), '1.2-2').replace(',',''));
}
}, error => {
}
);
}