2017-01-30 2 views
0

Gibt es eine Möglichkeit zu bestimmen, welches Attribut auf einem Element gerendert werden soll? Angenommen, ich wollte ein div so gestalten, dass es einen grünen Hintergrund hat, wenn meine count Variable größer als 5 ist, aber geben Sie ihr sonst eine ui-view-Anweisung?Ändern von Elementattributen basierend auf einer Bedingung

Lassen Sie uns ein unrealistisches Beispiel in Pseudo-Code geschrieben nehmen

<div ng-if="count > 5 ? {style='background: green'} : {ui-view='home'}"> 

</div> 

Ist das plausibel? Ich könnte es in die falsche Richtung gehen, aber ich wollte wissen, ob dies getan werden könnte oder sollte (Ich denke, benutzerdefinierte Anweisungen könnten helfen, aber ich wollte dies so leicht wie möglich halten)

Jede Hilfe oder Diskussion ist willkommen !

+0

ng-Klasse/ng-Stil. Siehe meine udpatierte Antwort. – AlainIb

Antwort

0

Sie können einfach tun:

<div ng-if="myCondition"></div> 
<div ng-if="!myCondition" ui-view></div> 

Um Code-Duplizierung zu vermeiden, schlage ich vor, verwenden ng-umfassen:

<ng-include src="template"></ng-include> 
+0

das wird funktionieren, aber komplizierter, stellen Sie sich in den Inhalt des div ist ein großer HTML, müssen Sie Code duplizieren. ng-class/ng-style ist für seinen Fall angepasst – AlainIb

+0

Das macht genau das, was ich will in nur zwei Zeilen! Vielen Dank –

+0

Sie können nicht mit ng-if Stil festlegen. ng-if wird verwendet, um dem dom einen HTML-Teil hinzuzufügen oder nicht – AlainIb

0

Ja, es ist, ng-Klasse wird für das Sie

<div ng-class="{{ 'green' : (count > 5) ; 'red' : (count != 5) }}"> 

</div> 
// where green and red is class name not style 

macht auch eine Variable für die Klassennamen

<div class="base-class" ng-class="myVar">Sample Text</div> 

oder ng-Stil http://plnkr.co/edit/pCplLBymY1nmX7Bmb0uO?p=preview

verwenden können
<span ng-style=" count > 5 ? { 'background-color':'red' } : { 'background-color':'green' }" >Sample Text</span> 
+0

Sorry, meine Frage war nicht ganz klar - ich möchte nicht ein einzelnes Attribut stylen, sondern die Attribute des Elements vollständig basierend auf einer Bedingung vertauschen. Aktualisiert die Frage –

Verwandte Themen