Angulaire du Matériel - afficher mat-erreur sur le bouton cliquez sur
Je suis en train de faire de la validation à l'aide de la <mat-for-field>
et <mat-error>
. Cela fonctionne bien lorsque l'utilisateur onglets de l'entrée sans remplissage. Mais comment puis-je la force de cette erreur quand je clique sur un bouton? Je ne suis pas à l'aide de soumettre. Aussi, en utilisant le modèle axé sur les formes.
C'est mon code:
HTML:
<mat-form-field>
<input matInput placeholder="Due Date" name="dueDate" [(ngModel)]="dueDate" [formControl]="dueDateValidator" required>
<mat-error *ngIf="dueDateValidator.invalid">Due Date is required for Tasks</mat-error>
</mat-form-field>
TS:
dueDateValidator: FormControl = new FormControl('', [Validators.required]);
Regarde dans erreur personnalisé de rapprochement
OriginalL'auteur ganeshk | 2017-10-14
Vous devez vous connecter pour publier un commentaire.
Voir comment utiliser un formulaire avec une coutume ErrorStateMatcher
Je voudrais faire un fichier séparé comme par défaut.erreur de correspondance.ts
Puis dans le fichier TS d'ajouter:
Puis modifiez l'entrée à utiliser matcher:
Cela a fonctionné parfaitement pour moi.
Avancé: si vous êtes à la création de vos propres contrôles de formulaire le
[errorStateMatcher]
fait partie de laCanUpdateErrorState
interfaceOriginalL'auteur Kyle Pfromer
Puisque vous voulez montrer mat erreur sur le click du bouton, s'il vous plaît essayer la ci-dessous:
Pour Angular6 version:
Il est important de vérifier la façon dont vous utilisez le formulaire de contrôle ".markAsTouched()" sur le point 3 affiche le tapis d'erreur pour le formulaire de contrôle.
markAsTouched
est ce que je cherchaisOriginalL'auteur Simran kaur
Basé sur Kyle Pfromer post, j'ai trouvé ma solution (pour le même problème):
Dans le fichier TS, j'ai ajouté la StateMatcher après j'ai trouvé un formulaire non valide, par exemple.
Dans le MyErrorStateMatcher classe j'ai changé comme suit:
Je trouve cela déroutant qui Angulaire Matériel n'est pas à la détection de l'erreur de toute façon.
OriginalL'auteur snibbo
Cela fonctionne pour moi. 🙂 Sur le click du bouton:
OriginalL'auteur Tejashree
Vous pouvez facilement appeler le
AbstractControl.updateValueAndValidity()
la fonction de clic sur le bouton. Cela va lancer le processus de validation sur le ForControl encore et afficher les erreurs, s'il y en a (en fonction de votre Validateurs).Donc, dans votre exemple:
OriginalL'auteur SplinterStan