AngularJS ngClass условие для присоединения динамического класса? - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь динамически добавить класс в таблицу tr в Angular js, как показано ниже:

ng-class="{
     'text-light' : inventory.newValue.disabled,
      'odd' : inventory.rowNumber % 2 === 1,
    {{inventory.first? 'loc-'unit.attachNumber : 'bldg-'inventory.parent.attachNumber }}

    }"

Но это не работает, кто-нибудь может мне помочь, как я могу сделать это в AngularJs. Также я не могу поместить это в контроллер.

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Вы забыли оператор конкатенации строк +:

'loc-'+unit.attachNumber
'bldg-'+inventory.parent.attachNumber

Кроме того, последний член вашего объекта недопустим. Ключ отсутствует, мы можем видеть только значение.

Вы можете попробовать это:

ng-class="{
  'text-light' : inventory.newValue.disabled,
  'odd' : inventory.rowNumber % 2 === 1,
  'attachNumber' : inventory.first? 'loc-'+unit.attachNumber : 'bldg-'+inventory.parent.attachNumber }}
}"
0 голосов
/ 07 ноября 2019

если вы используете много условий, лучше написать функцию. таким образом, у вас будет чистый код и код для отладки.

как это в вашем контроллере

$scope.getRightClass = function(inventory, unit){
    var classes = [];

    if(inventory.newValue.disabled === true){
        classes.push('text-light');
    }

    if(inventory.rowNumber % 2 === 1){
        classes.push('odd');
    }

    if(inventory.first === true){
        classes.push('loc-' + unit.attachNumber)
    }else{
        classes.push('bldg-' + inventory.parent.attachNumber);
    }

    return classes.join(' ');
}

и это на ваш взгляд

ng-class="getRightClass(inventory, unit)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...