TypeError: Cannot read property 'valide' undefined
J'ai le texte suivant textarea:
<textarea class="form-control" [(ngModel)]="content" name="content" required>
</textarea>
et suivants bouton envoyer:
<button type="submit" class="btn btn-default" [disabled]="content.valid">New comment</button>
Comme je l'ai vu dans l'angle de 2 guide d'utilisation (https://angular.io/docs/ts/latest/guide/forms.html) je peux utiliser le x.valid
afin de vérifier si elle n'est pas vide.
Pourquoi puis-je obtenir TypeError: Cannot read property 'valid' of undefined
erreur?
- je suppose que vous avez raté cette: '#nom="ngModel"'. dans votre cas: #content="ngModel"
- En fait, je reçois la même erreur
Vous devez vous connecter pour publier un commentaire.
Dans votre cas contenu est une propriété sur votre modèle.
Afin de faire ce que vous voulez, vous devez utiliser un modèle de référence de la valeur pour le contrôle de formulaire #myControl="ngModel" et puis vous avez accès à la propriété valide: myControl.valide.
Donc dans votre exemple:
Et de l'utiliser dans la balise button:
content
dans monngSubmit()
? Mon formulaire est affecté avec<form (ngSubmit)="onSubmit()">
mais je n'ai aucune idée de comment obtenir la valeur du contenu, avec cette manièrecontent
dans mon composant (.fichier ts)? Ai-je besoin de le passer en paramètre ou je peux l'utiliser dans mon composant d'une autre façon?Dans mon cas, j'ai enlevé le ngModel de #myName="ngModel" pour le faire fonctionner.
Angualr version 5.2.11
Vous pouvez utiliser
ngModelChange
comme une solution de contournement:Et dans votre composant:
Cela peut vous donner plus de flexibilité lorsque vous utilisez
*ngFor
d'afficher un bon nombre de champs de saisie et souhaitez valider individuellement.