2015-01-15 65 views
0

我有這個td與一個複雜的ng類,工作得很好。 <td ng-repeat="column in columns" ng-class="'cell-value-' + column.name + '-'+ row[column.name] | safeClassName" > 多個複雜的計算ng類

我想添加另一個類到只是列名的td。這似乎並不工作

<td ng-repeat="column in columns" ng-class="'cell-value-' + column.name + '-'+ row[column.name] | safeClassName" ng-class="'cell-column-' + column.name | safeClassName" >
對於一個小側面信息,safeClassName轉換空間,以破折號和過濾掉無效字符

我怎能第二類計算到我的TD?

回答

2

AngularJS不支持在同一元素上使用多個ngClass指令,但它確實支持一個表達式,該表達式用類名空格分隔的字符串或類名稱數組進行求值。

由於邏輯變得越來越複雜,我將邏輯移動到生成視圖模型(或$ scope)函數的類名。

<td ng-repeat="column in columns" ng-class="vm.computeClass(column)" /> 

控制器應具有的功能,然後像下面這樣:對納克級

vm.computeClass = function(column) { 
    var classNames = []; 

    classNames.push('cell-value-' + column.name + '-'+ row[column.name] | safeClassName); 
    classNames.push('cell-column-' + column.name | safeClassName); 

    return classNames; 
}; 
0

您可以使用數組語法

<td ng-repeat="column in columns" 
    ng-class="['cell-value-' + column.name + '-'+ row[column.name] | safeClassName,'cell-column-' + column.name | safeClassName]" 
>