2016-05-28 3 views
15

Я пытаюсь установить атрибут для компонента, если определенное выражение истинно. Может ли кто-нибудь дать мне пример?Динамически устанавливаемый атрибут для компонента в html-шаблоне угловой 2

Что я сейчас:

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

, но это не компилируется.

inArray - мой собственный метод, который возвращает true или false. Что я хотел бы видеть это, если выражение истинно, то выход будет

<div danger></div> 

В угловых 1 было такое: нг-атр -... утверждение, что сделало именно выше.

ответ

31

Чтобы установить атрибут использовать атрибут привязки:

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

Если вы хотите, чтобы показать пустой атрибут условно возвращает пустую строку или NULL в inArray():

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

поэтому атрибут будет пустой или атрибут опасности не существует. Результат:

<div danger></div> 
+1

Спасибо за ваш комментарий muetzerich. Этот код позволяет мне динамически устанавливать значение атрибута, но то, что я хотел бы достичь, - это установить сам атрибут. – Bram

+0

Чтобы уточнить: вывод с вашим кодом: danger = "true", но я бы хотел, чтобы только атрибут атрибута не дал ему значение. – Bram

+0

попробуйте это [attr.danger] = "inArray (choice.likers, user, id)? True: null" -> null удалить атрибут опасности – muetzerich

Смежные вопросы