0
votes

Pas capable d'obtenir une valeur de FormControl angulaire 6

J'essaie d'obtenir une valeur d'un groupe de formes angulaires.

Lorsque j'utilise formontrolname code> Je peux obtenir la valeur mais lorsque j'utilise [formontrol] code> Je ne suis pas capable de lire la valeur. P>

J'utilise [formontrol] car je dois avoir une autocomplete pour le champ de saisie. Voici mon code p>

HTML STRY>: P>

export class TransactionSearchComponent implements OnInit{
constructor(private fb:FormBuilder,private transactionService:TransactionService, private LoginvalidationService:LoginvalidationService, private ExcelService:ExcelService){   }
searchForm:FormGroup;
Client = new FormControl();

ngOnInit(): void {

        this.searchForm=this.fb.group({
                     client:[''],
                 })

       this.clientfilteredOptions = this.Client.valueChanges
        .pipe(
        startWith(''),
        map(value => this._Clientsfilter(value))      
      );
    }
 private _Clientsfilter(value: string): string[] {
        const filterValue = value.toLowerCase();  

        return this.clients.filter(option => option.toLowerCase().includes(filterValue));
    }

  searchTransaction(){ 
console.log(this.searchForm.get('client').value);
}


0 commentaires

4 Réponses :


0
votes

Veuillez vérifier la capitalisation dans HTML Client VS Usage Client


1 commentaires

Non même après avoir changé la capitalisation, il n'a pas fonctionné



2
votes

Je suggérerais au lieu d'utiliser * NGIF tout en travaillant avec le groupe de formulaires Utilisez ngstyle ou ngclass ou [caché] avec la liaison de la propriété.

* Raison Derrière ForControlName ne fonctionne pas avec NGIF - NGIF Enlève complètement ou Ajoute du bloc de HTML C'est pourquoi la variable n'est pas accessible en dehors de NGIF.

ci-dessous est le code de travail avec formontrolname avec Attribut caché,

.commonent.html xxx

ou xxx

ou xxx

app.component.ts

importer {composant} de "@ angulaire / noyau"; xxx


0 commentaires

1
votes

Dans le cas où, vous devez ajouter le formontrol code> dans fromgroup code>

Il existe deux manières, P>

searchTransaction(){ 
    this.searchForm.addControl('client',this.client);
    console.log(this.searchForm.value);
}


0 commentaires

1
votes

Vous n'avez pas besoin de définir le contrôle de formulaire comme celui-ci:

formControlName="client" // small one


1 commentaires

Remplacer ceci.form avec this.searchForm lil typo