嗨,我的方法比蛮力更面向对象,标记完全由称为“列”的对象数组构建
该解决方案的灵感来自于此处http://lorenzofox3.github.io/smart-table-website/#examples-section的列拖放示例
首先,我定义了一个“列”数组,您可以根据需要创建任意数量的这些对象
{
'name': 'Nice Name',
'value': 'name',
'class': '',
'data': 'row.name',
'ngShow': true,
}
现在我有了我的列,我可以在我的表格标记中做这样的事情
<tr ng-repeat="row in tableRows">
<td ng-repeat="col in columns" ng-class="{{col.ngClass}}" ng-style="{{col.ngStyle}}" ng-show="col.ngShow">
<div ng-bind="{{col.data}}"></div>
</td>
</tr>
然后我为列切换开关创建一个单独的标记
<p ng-repeat="col in columns">
<a ng-click="col.ngShow = !col.ngShow">{{col.name}}</a>
</p>