Угловой 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}}'">
Другие вопросы по тегам