Je sais que dans angular2 je peux désactiver un bouton avec l'
[disable]
attribut, par exemple:
<button [disabled]="!isValid" (click)="onConfirm()">Confirm</button>
mais puis-je le faire en utilisant [ngClass]
ou [ngStyle]
? Ainsi:
<button [ngStyle]="{disabled : !isValid}" (click)="onConfirm()">Confirm</button>
Merci.
html
angular
angular2-template
angular2-forms
Nir Schwartz
la source
la source
Réponses:
Mettre à jour
Je me demande. Pourquoi ne souhaitez-vous pas utiliser la
[disabled]
liaison d'attribut fournie par Angular 2? C'est la bonne façon de gérer cette situation. Je vous propose de déplacer votreisValid
chèque via la méthode des composants.Le problème avec ce que vous avez essayé expliqué ci-dessous
En gros, vous pouvez utiliser
ngClass
ici. Mais l'ajout d'une classe n'empêcherait pas l'événement de se déclencher. Pour déclencher un événement sur une entrée valide, vous devez modifier leclick
code d'événement ci-dessous. Donc, celaonConfirm
ne sera déclenché que lorsque le champ est valide.Démo ici
la source
button[disabled]
événement basé sur le sélecteur et désactivé limiteront l'click
événement à se déclencher sur le bouton .. dans langClass
classe, vous devez le gérer vous-même, comme je l'ai montré dans réponse ci-dessus ..[disabled]="!isValid"
isValid
drapeau sur l'interface utilisateurJe recommanderais ce qui suit.
la source
Oui, vous pouvez
https://angular.io/docs/ts/latest/api/common/NgClass-directive.html
la source
Si vous avez un formulaire, alors ce qui suit est également possible:
Démo ici: http://plnkr.co/edit/Xm2dCwqB9p6WygrquUGh?p=preview&open=app%2Fapp.component.ts
la source
Utiliser
ngClass
pour désactiver le bouton pour le formulaire invalide n'est pas une bonne pratique dans Angular2 lorsqu'il fournit des fonctionnalités intégrées pour activer et désactiver le bouton si le formulaire est respectivement valide et invalide sans faire aucun effort / logique supplémentaire.[disabled]
fera tout comme si le formulaire est valide, il sera activé et si le formulaire n'est pas valide, il sera automatiquement désactivé.Voir l'exemple:
la source
Peut-être que le code ci-dessous peut vous aider:
la source
<button disabled="">
ou<button disabled="false">
est toujours géré comme un bouton désactivé dans la plupart des navigateursJ'ai essayé d'utiliser désactivé avec l'événement de clic. Ci-dessous, l'extrait de code, la réponse acceptée a également parfaitement fonctionné, j'ajoute cette réponse pour donner un exemple de la façon dont elle peut être utilisée avec les propriétés désactivées et cliquées.
la source
Si vous utilisez des formulaires réactifs et que vous souhaitez désactiver certaines entrées associées à un contrôle de formulaire, vous devez placer cette
disabled
logique dans votre code et appeleryourFormControl.disable()
ouyourFormControl.enable()
la source
Je pense que c'est le moyen le plus simple
la source
.ts code
la source