2016-04-25 13 views
0

Ich möchte meine zwei ng-wenn zusammen anstatt separat arbeiten. Wenn beide wahr sind, dann zeige nur die letzte, die wahr ist. Mein Code sieht jetzt so aus.Kombinieren ng-wenn zusammen

<div> 
    <img ng-src="{{img(myColor)}}" ng-if="myColor"> 

    <img ng-src="{{img(myColor2)}}" ng-if="myColor2"> 
</div> 

Allerdings stapelt sie nur übereinander, wenn beide ng-wenn wahr werden. Gibt es eine Möglichkeit, nur eine ohne css zu zeigen

Antwort

0

Es klingt wie Sie brauchen kompliziertere Logik als was einfache Markup bieten kann. Warum verwenden Sie nicht einfach eine Bereichsfunktion, die die Farbe festlegt, und verwenden Sie dann konsolidiertes Markup.

<div> 
    <img ng-src="{{img(color)}}" ng-if="color"> 
</div> 

Und in Ihrem Javascript

$scope.setColor = function() { 
    // Something that determines what color to set. 
    $scope.color = ...; 
}; 
+0

ich die Frage geklärt haben, wenn beide wahr sind nur ich einer von ihnen zeigen wollen - die neueste ng-if. Wie mache ich das? –

+0

@jebmarcus - was meinst du mit "aktuell"? –

+0

Ich meinte, dass sie hin und her wechseln. Wenn das erste ng-if zuerst wahr ist, dann das zweite ng-if wahr wird, möchte ich anzeigen lassen. Fast wie ein Toggle –

3

Ich könnte sehr spät sein, eine Lösung vorzuschlagen. Aber ich nehme an, Sie können es mit & & bitweisen Operator tun.

Unten ist der Beispielcode:

<div> 
 
    <img ng-src="{{img(myColor)}}" ng-if="myColor && !myColor2"> 
 

 
    <img ng-src="{{img(myColor2)}}" ng-if="myColor && myColor2"> 
 
</div>