7

我得到了这个代码:

ng-class="{selectedHeader: key == selectedCol}"

它可以工作,但我也想将'key'值添加为一个类,我试过了:

ng-class="[{selectedHeader: key == selectedCol}, key]"

但这不会起作用,有谁知道如何解决这个问题?

4

7 回答 7

4

如果你总是想key被添加为一个类:

ng-class="{selectedHeader: key == selectedCol, key: true]"

或者您可以将其放入带有插值的class属性中。{{}}

ng-class="{selectedHeader: key == selectedCol}" class="{{key}}"

只是为了完整起见,如果你只想在它等于时包含它selectedCol

ng-class="{selectedHeader: key == selectedCol, key: key == selectedCol}"
于 2014-04-17T07:23:06.200 回答
3

您可以使用$scope方法来定义这些动态类名来处理这个问题。这看起来像这样:

控制器:

$scope.selectedCol = 3;
$scope.key = 3;

// dynamic ng-class values
$scope.selectedHeader = function () {
    if ($scope.selectedCol === $scope.key)
        return 'header-selected';
    else
        return false;
};

// selected header definition for ng-class
$scope.headerKey = function () {
    return 'header-' + $scope.key;
};

看法:

<header ng-class="[ selectedHeader(), headerKey() ]">
    <h1>Header element</h1>
</header>

结果:

<header ng-class="[ selectedHeader(), headerKey() ]" class="header-selected header-3">
        <h1>Header element</h1>
</header>
于 2014-10-25T17:45:38.643 回答
2

// single class  
<div ng-class="{'myclass' : condition}">  
</div>  
  
// multiple class  
<div ng-class="{'myclass1': condition1, 'myclass2': condition2}">  
 some content  
</div>  

于 2016-08-09T10:17:52.917 回答
1

你可以这样做

  ng-class="{selectedHeader: key == selectedCol}" class="{{key}}"
于 2014-04-17T07:24:17.007 回答
1

我认为您正在寻找的是:ng-class="{ {{key}}:{{key}} }"

另请记住,css 类不应以数字开头,因此您可能需要为键值添加前缀。

于 2015-01-24T16:20:49.687 回答
1

这将不起作用,因为 { selectedHeader : key == selectedCol } 将被评估为对象而不是字符串:

ng-class="[{selectedHeader: key == selectedCol}, key]"

以下代码有效,它将添加类“selectedHeader”和键值:

ng-class="[key == selectedCol ? 'selectedHeader' : '', key]"
于 2016-07-28T04:02:28.627 回答
0

尝试这个:

class="{{key}} ng-class:{'selectedHeader': key == selectedCol};
于 2015-03-11T15:46:40.923 回答