web-dev-qa-db-fra.com

angular 6 avertissement concernant l'utilisation de formControlName et de ngModel

J'ai récemment mis à niveau la version angular vers la version 6-rc. J'ai eu l'avertissement suivant

Il semble que vous utilisiez ngModel sur le même champ de formulaire que formControlName. La prise en charge de l'utilisation de la propriété d'entrée ngModel et de l'événement ngModelChange avec des directives de formulaire réactives est obsolète dans Angular v6 et sera supprimée dans Angular v7.

Pour plus d'informations à ce sujet, consultez nos documents API ici: https://angular.io/api/forms/FormControlName#use-with-ngmodel

Que dit-il exactement? le lien n'a pas de fragment pour #use-with-ngmodel

Je suppose que je dois supprimer ngModel et utiliser formGroup comme objet de liaison de données.

30
Akshay

Si vous recherchez la documentation Angular 6 dès maintenant, utilisez https://next.angular.io

https://next.angular.io/api/forms/FormControlName#use-with-ngmodel

Donc vous avez 3 options:

  1. utiliser des formes réactives

  2. utiliser des formulaires basés sur des modèles

  3. avertissement de silence (non recommandé)

    imports: [
      ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl: 'never'});
    ]
    
29
yurzui

Supprimez [(ngModel)] de chaque champ de formGroup contient formControlName et définissez la valeur dans la classe du contrôleur comme suit simplement this.form.get('first').setValue('some value'); ne fermez pas ou ne désactivez pas les avertissements explicitement

2
Sohail Anwar

ajouter

[ngModelOptions]="{standalone: true}" 

Vous pouvez en lire plus sur le site angular https://angular.io/api/forms/NgModel

1