0
votes

ng-switch ne fonctionne pas même isactive est faux

Il y a deux boutons dans ng-switch, si isActive est faux, l'un ou l'autre devrait s'afficher, mais il montre les deux boutons.Qu'est-ce que je fais mal?

<div ng-switch="user.IsActive">
  <div ng-switch-when="false">
  <button type="button" (click)="activateDeactivateUser(user.UserId,user.IsActive)" class="btn btn-primary active">Deactivate</button>
    </div>


Activer


0 commentaires

3 Réponses :


1
votes

Je suggérerais d'utiliser NG-si pour booléens. xxx pré>

mais ceci est un exemple pour NG-Switch P>

<div ng-switch="user.IsActive">
  <div ng-switch-when="true'">
    <button type="button" (click)="activateDeactivateUser(user.UserId,user.IsActive)" class="btn btn-primary active">Deactivate</button>
  </div>
  <div ng-switch-when="false">
    <button type="button" (click)="activateDeactivateUser(user.UserId, user.IsActive)" class="btn btn-primary active">Activate</button>
  </div>
</div> 


1 commentaires

pouvez-vous publier le JSON?



1
votes

Angular ng-switch évaluera votre false en tant que variable et non en tant que boolean valeur , alors changez votre casse. comme ng-switch-when="'false'"

<div ng-switch="user.IsActive">
                                                    <div ng-switch-when="'false'">
                                                        <button type="button" (click)="activateDeactivateUser(user.UserId,user.IsActive)" class="btn btn-primary active">Deactivate</button>
                                                    </div>
                                                    <div ng-switch-default>                                                                
                                                        <button type="button" (click)="activateDeactivateUser(user.UserId,user.IsActive)" class="btn btn-primary active">Activate</button>
                                                    </div>
                                            </div>


0 commentaires

1
votes

Vous ne voulez pas utiliser ici un ngSwitch, mais plutôt un ngIf:

<div [ngSwitch]="variableCondition">
    <component1 *ngSwitchCase="variableCondition1"></component1>
    <component2 *ngSwitchCase="variableCondition2"></component2>
</div>

Lorsque la variable user.IsActive retourne true, le bouton s'affiche. Lorsqu'il renvoie false, le bouton sera masqué.

Sur une note distincte, votre syntaxe pour le ngSwitch est incorrecte. La syntaxe appropriée suit ce modèle:

<div *ngIf="user.IsActive">
  <button type="button" (click)="activateDeactivateUser(user.UserId,user.IsActive)" class="btn btn-primary active">Deactivate</button>
</div>


0 commentaires