Angulaire bouton désactiver après cliquez sur?
J'ai plusieurs bouton im essayant de désactiver le bouton après l'obtention de la réponse.Im en utilisant ngClass pour désactiver le bouton après l'obtention de la réponse
<tr *ngFor="let item of data">
<td>{{item.username}}</td>
<td>{{item.name}}</td>
<td>{{item.email}}</td>
<td>{{item.phone}}</td>
<td><button type="button" [ngClass]="{disabled : item.username === name }" (click)="changestatus(item.username)" class="btn btn-success btn-xs" >Change Status</button></td>
</tr>
Et mon changestatus fonction
public name : string ;
changestatus(username : string){
this.httpService.changeuserstatus({uname : username }).subscribe(data => {
this.name = (data.data == 1) ? username : "no";
})
}
im de l'affectation de la valeur de nom d'utilisateur pour le nom de la variable et si les deux matchs, je vais désactiver le bouton
Le problème est que si je clique sur le 1er bouton après l'obtention de la réponse il est désactivé mais quand je clique sur le 2ème bouton de la après avoir de réponse 1er bouton est activé et que le 2ème bouton est désactivé.Mais la chose est nécessaire pour désactiver les boutons. M'aider merci d'avance
- Double Possible de: stackoverflow.com/questions/38618463/...
- Essayez ceci:
[ngClass]="{disabled : item.temp || (item.username === name && item.temp = true) }"
Vous devez vous connecter pour publier un commentaire.
@maciej-caputa est correcte concernant l'utilisation de
[disabled]
plutôt que d'une classe, mais votre erreur est en fait en raison de la logique de l'application.Votre fonction
changestatus()
les mises à jour de la variable globalethis.name
.Cela va affecter toutes les lignes, depuis leur
disabled
de l'etat est subordonnée à'item.username === name'
Essayez ce qui suit - je suis en supposant que
item
est d'un type appeléUser
(dont vous aurez besoin pour ajouter une nouvelle propriétéisDisabled
:Modèle:
component.html:
composant.ts:
Très simple plunkr la démonstration d'une version de travail: https://plnkr.co/edit/quLBCMoFtragJ32OBTvp
Pour vraiment avoir le bouton désactivé, vous devez utiliser
disabled
attribut sur le bouton de l'élément sinon, vous ne changer de style, mais encore être en mesure de cliquer dessus. Dans angular2 que vous pouvez lier un attribut comme suit.item.username === name
pour une méthode publique sur un composant, puis appeler<button [disabled]='isDisabled()'></button>
c'est une bonne pratique et peut vous aider à vérifier la logique. Si vous avez besoin de style puis, il y référer parbutton:disabled
(:disabled
pseudo classe).<button class='original-button' [disabled]='item.username === name'></button>
et puis dans le css.original-button:disabled
.html:
TS :