Как изменить текст в этом случае, используя ng-if или другое выражение?
Я пытаюсь изменить текст в теге заголовка на основе tag
"s direction
значение:
<li ng-repeat="t in tags">
<div class="tag"
ng-class="{'green-up': t.direction == 'positive',
'red-down': t.direction == 'negative',
'' : t.direction == 'stagnant'}"
title="Percentage increase"
ng-if="">{{t.name}}</div>
</li>
Направление либо positive
, negative
или же stagnant
, который должен соответствовать title="Percentage increase"
title="Percentage decrease"
или просто title="Percentage"
Какой угловой синтаксис лучше всего использовать в этом случае?
1 ответ
Решение
Почему бы не настроить параметры тега как объект
$scope.tagInfo = {
positive:{ class:"green-up", title:"Percentage increase" },
negative:{ class:"red-down", title:"Percentage decrease" }
}
а потом позвони в свой ng-repeat
<div class="tag"
ng-class="tagInfo[t.direction].class"
title="{{tagInfo[t.direction].title}}">{{t.name}}</div>
Если вам абсолютно положительно необходимо использовать условное предложение, а не поиск соответствия, вызовите метод, подобный fe title="{{getTitle(t.direction)}}
$scope.getTitle = function(direction) {
if (direction==="positive") {
return "Increase";
} else if (direction==="negative") {
return "Decrease";
}
};
Я действительно не вижу смысла вообще делать это все же. Все, что он вносит, это делает ваш код более грязным.