2017-01-30 2 views
0

Есть ли способ определить, какой атрибут для визуализации на элементе? Например, скажем, я хотел, чтобы стиль div имел зеленый фон, если моя переменная count больше 5, но в противном случае дайте ей директиву ui-view?Изменение атрибутов элемента на основе условия

Давайте нереалистичный пример, написанный на псевдокоде

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

</div> 

Является ли это правдоподобно? Я, возможно, приближаюсь к нему неправильно, но я хотел бы знать, может ли это быть или должно быть сделано (я думаю, что пользовательские директивы могут помочь, но я хотел бы, чтобы это было как можно более легким)

Любая помощь или обсуждение приветствуются !

+0

нг-класса. см. мой udpated ответ – AlainIb

ответ

0

Вы можете просто сделать:

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

Для того, чтобы избежать дублирования кода я предлагаю использовать нг-включают:/нг-стиль

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

это будет работать, но сложнее, представьте себе, что содержимое div - большой html, вам нужно дублировать код. ng-class/ng-style адаптирован для его случая – AlainIb

+0

Это делает именно то, что я хочу только в двух строках! Большое спасибо –

+0

вы не можете установить стиль с помощью ng-if. ng-if используется для добавления или отсутствия html-части в dom – AlainIb

0

Да, это, нг-класс сделан для того

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

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

Вы также можете использовать переменную для имени класса

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

или нг стиле http://plnkr.co/edit/pCplLBymY1nmX7Bmb0uO?p=preview

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

Извините, мой вопрос был не совсем ясен - я не ищу стиль одного атрибута, но для замены атрибутов элемента полностью на основе условия. Обновлено вопрос –

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