这是我的表
<table class="table table-bordered table-responsive table-hover add-lineheight table_scroll">
<thead>
<tr>
<th ng-hide="hidecolumn == key" ng-repeat="(key, value) in localNew[0]">
{{key}}
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="test in localNew">
<td ng-hide="hidecolumn == key" ng-repeat="(key, value) in test">
{{value}}
</td>
</tr>
</tbody>
</table>
这里hidecolumn将隐藏我不希望显示的列 例如在我的控制器中
这是我的数据
$scope.localNew = [{ 'name': 'name1', 'age': 24, "salary": 2500, "s": 5 }, { 'name': 'name2', 'age': 26, "salary": 2600, "s": 5 }];
这是我的隐藏列变量
$scope.hidecolumn = "salary";
这很好用
现在我的问题是,我想要隐藏多个列 所以我的范围变量就像
$scope.hidecolumn = "name,salary";
那么如何在我的html表中管理这个以隐藏多列,即多个隐藏值???如果你还没有得到我的问题让我知道我会添加一个plunker.Thanku
答案 0 :(得分:2)
您可以使用Array
及其indexOf
方法:
$scope.hidecolumn = [ "name", "salary" ];
//查看
<td ng-hide="hidecolumn.indexOf(key) !== -1" ng-repeat="(key, value) in test">
{{value}}
</td>
答案 1 :(得分:2)
您应该使用数组而不是字符串:
$scope.hidecolumns = ['name', 'salary'];
以及检查当前列是否应该隐藏的函数:
$scope.shouldHideColumn = function(column) {
if ($scope.hidecolumns.indexOf(column.salary)) {
return true;
}
return false;
};
然后在HTML
:
<th ng-hide="shouldHideColumn(value)" ng-repeat="(key, value) in localNew[0]">
{{key}}
</th>
答案 2 :(得分:1)
您也可以这样做:
<td ng-hide="hidecolumn.indexOf(key) !== -1" ng-repeat="(key, value) in test">
{{value}}
</td>
答案 3 :(得分:0)
你试过这个:
<td ng-repeat="(key, value) in test" ng-hide="key === 'name' || key === 'salary'">
{{value}}
</td>
答案 4 :(得分:0)
您可以调用以下函数:
ng-hide="hidecolumn(key)"
JS
var hideColumn = function(key) {
var fruits = ["Banana", "Orange", "Apple", "Mango"];
if (fruits.indexOf(key)) === 0 return false;
}
ng-hide将隐藏&#39;如果函数返回true,则返回元素。
答案 5 :(得分:0)
indexOf工作得很好但是如果你想在其他地方重复相同的方法,你可能想要在这样的全局空间中为数组创建一个contains方法:
Array.prototype.contains = function contains(obj) {
for (var i = 0; i < this.length; i++) {
if (this[i] === obj) {
return true;
}
}
return false;
};
然后创建你的数组:
$scope.hiddencolumns = [ "name", "salary" ];
然后你可以这样使用:
<td ng-hide="hiddencolumns.contains(key)" ng-repeat="(key, value) in test">
{{value}}
</td>
要将逗号分隔的字符串转换为数组,请使用以下命令:
var array = $scope.hidecolumn.split(',');
答案 6 :(得分:0)
谢天谢地,我刚把我的字符串转换为数组var array = string.split(',');
得到了理想的结果,谢谢你的帮助