Javascript AngularJS ngClass附加动态类的条件?

Javascript AngularJS ngClass附加动态类的条件?,javascript,angularjs,Javascript,Angularjs,我正试图在Angular js中动态地将类附加到表的tr中,如下所示: ng-class="{ 'text-light' : inventory.newValue.disabled, 'odd' : inventory.rowNumber % 2 === 1, {{inventory.first? 'loc-'unit.attachNumber : 'bldg-'inventory.parent.attachNumber }} }" 但它不起作用,有人能

我正试图在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中做到这一点。此外,我无法将其放入控制器。

您忘记了字符串连接运算符+:

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

如果你使用很多条件,最好写一个函数。这样,您将拥有清晰的代码和可调试的代码

在你的控制器里是这样的

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

这回答了你的问题吗?不,我已经讲过了,这个主题不涉及动态类,意思是在类中附加一些动态值