AngularJS ngClass附加动态类的条件?

时间:2019-11-07 04:42:47

标签: javascript angularjs

我试图在类似于owow的Angular js中将类动态附加到表的tr中。

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

    }"

但是它不起作用,有人可以帮助我如何在AngularJs中做到这一点。我也不能把它放在控制器中。

2 个答案:

答案 0 :(得分:1)

您忘记了字符串串联运算符+:

'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 }}
}"

答案 1 :(得分:0)

如果您使用许多条件,则最好编写一个函数。这样,您将获得清晰的代码和可调试的代码。

在您的控制器中这样

$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)"