1

In meinem ursprünglichen Code, ich zuerst überprüfen, ob ein Benutzer eine Diskussion markieren kann, wenn sie kann ich die ng-Schalter wo, wenn sie es markieren, werden sie Erfolg sehen Meldung angezeigt:Angular js: Ng-switch wird nicht aktualisiert nach ng-click

<div ng-if="canFlag(discussion)"> 
    <div ng-switch="isFlagging" 
     ng-click="flagDiscussion(discussion.id)"> 

     <i ng-switch-when="false" 
      class="icon-flag" 
      aria-hidden="true"></i> 

     <div ng-switch-when="true" 
      ng-click="$event.stopPropagation()" 
      >Successfully flagged</div> 

    </div> 
</div> 

ich mag würde meinen Code, so dass der ng-Klick in dem falschen ng-Schaltzustand Refactoring ist und dass ich die stopPropagation Methode entfernen wie:

<div ng-if="canFlag(discussion)"> 
    <div ng-switch="isFlagging"> 

     <div ng-switch-when="false" 
      ng-click="flagDiscussion(discussion.id)"> 
      <i class="icon-flag" aria-hidden="true"></i> 
     </div> 

     <div ng-switch-when="true">Successfully flagged</div> 

    </div> 
</div> 

In der erste Code, ng-switch funktioniert nach ng-click, aber im zweiten Code bleibt ng-switch falsch, obwohl in der es wird angeklickt. isFlagging wird in der flagdiscussion-Methode auf 'true' gesetzt. Nach dem Klicken auf den Flag-Button ist der Flag-Button immer noch dort und nichts ändert sich.

Ich sah einen ähnlichen Beitrag AngularJs: why doesn't ng-switch update when I use ng-click? und x.isFlagging zum Schalter und auch this.isFlagging = true nach der Klick-Anweisung hinzugefügt, aber mit diesem fügte ich nicht einmal mehr die Flag-Taste.

Wer weiß, warum das passiert?

js Code:

$scope.flagDiscussion = function(id) { 
     service.flagDiscussion(id); 
     this.isFlagging = true; 
    }; 
+0

JavaScript-Code hinzufügen? –

+0

@DavidH. Ich fügte in den Js-Code hinzu, aber es kennzeichnet es gerade in der DB und macht die Markierung wahr – chonglawr

Antwort

0

Versuchen: ng-switch on="isFlagging"

+1

Es funktioniert in beiden Arten. Mit oder ohne 'on'. – developer033

Verwandte Themen