Угловой ng-класс с двумя классами, один с именем переменной и один с условием
Я немного застрял с проблемой, возможно, какой-то синтаксис я не могу найти в Интернете.
Я создал угловую директиву, которая получает имя класса в качестве переменной области видимости. В шаблоне я хочу добавить данное имя класса и другой класс как условный. что-то вроде того:
app.directive('MyDirective', function () {
return {
restrict: 'E',
scope: {
className: '=',
},
template: "<div ng-class="className, 'otherClass':{expression}"></div>"
}
});
Спасибо:)
3 ответа
Решение
Если предположить, className
это свойство в области:
Вы можете использовать выражение массива с синтаксисом самого литерала объекта.
<div ... ng-class="[className, {true : 'otherClass'}[expression]]"
или смешать с class
<div ... class="{{className}}" ng-class="{'otherClass': expression}"
change your code like this
app.directive('MyDirective', function () {
return {
restrict: 'E',
scope: {
className: '=',
},
template: "<div ng-class="'className':true, 'otherClass': {expression}"></div>"
}
});
Вы можете использовать ваши данные области с некоторым условием или выражением.
<div ng-class="{'{{item.name}}' : item.condition}">
или же
<div ng-class="$variableToEvaluate ? '{{item.nameiftrue}}' : '{{item.nameiffalse}}'">