J'essaie de comprendre comment utiliser un pipe dans un formulaire réactif pour que la saisie soit forcée dans un format monétaire. J'ai déjà créé mon propre tube pour cela, que j'ai testé dans d'autres parties du code, et je sais donc qu'il fonctionne comme un simple tube. Le nom de mon tube est 'udpCurrency'.
La réponse la plus proche que j'ai pu trouver sur stack overflow était celle-ci : Utilisation de tuyaux dans ngModel sur des éléments INPUT dans Angular2-View Cependant, cela ne fonctionne pas dans mon cas et je pense que cela a quelque chose à voir avec le fait que mon formulaire est réactif.
Voici tout le code pertinent :
Le modèle
<form [formGroup]="myForm" #f="ngForm">
<input class="form-control col-md-6"
formControlName="amount"
[ngModel]="f.value.amount | udpCurrency"
(ngModelChange)="f.value.amount=$event"
placeholder="Amount">
</form>
Le composant
import { Component, OnInit, HostListener } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
export class MyComponent implements OnInit {
myForm: FormGroup;
constructor(
private builder: FormBuilder
) {
this.myForm = builder.group({
amount: ['', Validators.required]
});
}
}
L'erreur :
ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'undefined: '. Current value: 'undefined: undefined'
0 votes
L'erreur d'expression provient-elle du tuyau ou du composant ?
0 votes
Le composant html. en particulier la ligne qui a ceci "[ngModel]="f1.value.amount | udpCurrency"
0 votes
stackoverflow.com/questions/57993732/