2016-05-28 9 views
15

Ich versuche, ein Attribut für eine Komponente festzulegen, wenn ein bestimmter Ausdruck wahr ist. Könnte mir jemand ein Beispiel geben?Dynamisch Set Attribut für Komponente in HTML-Vorlage Winkel 2

Was ich habe jetzt:

<div [danger]="inArray(choice.likers, user, id)"></div> 

aber nicht kompiliert.

inArray ist meine eigene Methode, die wahr oder falsch zurückgibt. Was ich möchte, ist zu sehen, wenn der Ausdruck true zurückgibt, wird der Ausgang

<div danger></div> 

In Winkel 1 da sein, war dies: ng-attr -... Anweisung, die genau tat die oben. leer

inArray() { 
    let value; 
    if (isInArray) { 
     value = ''; 
    } else { 
     value = null; 
    } 
    return value; 
    } 

so das Attribut:

Antwort

31

Attribut setzt ein Attribut Bindung verwenden:

<div [attr.danger]="inArray(choice.likers, user, id)"></div> 

Wenn Sie ein leeres Attribut bedingt zurückgeben leeren String oder null in inArray() zeigen wollen oder das Gefahrenattribut existiert nicht. Das Ergebnis ist:

<div danger></div> 
+1

Vielen Dank für Ihren Kommentar muetzerich. Dieser Code erlaubt mir, den Wert des Attributs dynamisch festzulegen, aber was ich erreichen möchte, ist das Attribut selbst zu setzen. – Bram

+0

Zur Verdeutlichung: die Ausgabe mit deinem Code ist: danger = "true", aber ich möchte nur das Attribut setzen keinen Wert geben. – Bram

+0

versuche dies [attr.danger] = "inArray (choice.likers, user, id)? True: null" -> null entferne das Gefahrenattribut – muetzerich