2016-05-28 14 views
15

Próbuję ustawić atrybut dla komponentu, jeśli pewne wyrażenie jest prawdziwe. Czy ktoś mógłby mi podać przykład?Dynamiczne ustawianie atrybutu komponentu w szablonie html kątowym 2

Co mam teraz:

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

ale to nie skompilować.

inArray to moja własna metoda, która zwraca wartość true lub false. Co chciałbym zobaczyć to, jeśli wyrażenie zwraca wartość true, wyjście będzie

<div danger></div> 

W kątowej 1 nie było tak: NG-attr -... oświadczenie, że zrobił dokładnie powyżej.

Odpowiedz

31

Aby ustawić atrybut używać atrybut wiążącą:

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

Jeśli chcesz pokazać pusty atrybut warunkowo wrócić pusty ciąg lub wartość null w inArray():

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

więc atrybut będzie opróżnić lub atrybut niebezpieczeństwa nie istnieje. Wynik:

<div danger></div> 
+1

Dziękuję za komentarz muetzerich. Ten kod pozwala mi dynamicznie ustawiać wartość atrybutu, ale chciałbym ją ustawić sam. – Bram

+0

Aby wyjaśnić: wyjście z kodem to: danger = "true", ale chciałbym tylko ustawić atrybut, który nie daje mu wartości. – Bram

+0

spróbuj tego [attr.danger] = "inArray (choice.likers, user, id)? True: null" -> null usuwa atrybut danger – muetzerich

Powiązane problemy