Angularjs 如何使用ng repeat和filter隐藏动态表中的某些列?
我有一个从数据库返回的动态数据集,我正试图为其创建一个通用表,该表始终可以列出它,而不管列数或行数如何 它工作得很好,但我遇到的问题是,我希望能够隐藏一些列,例如ID 以下是数据的外观:Angularjs 如何使用ng repeat和filter隐藏动态表中的某些列?,angularjs,angularjs-directive,angularjs-ng-repeat,Angularjs,Angularjs Directive,Angularjs Ng Repeat,我有一个从数据库返回的动态数据集,我正试图为其创建一个通用表,该表始终可以列出它,而不管列数或行数如何 它工作得很好,但我遇到的问题是,我希望能够隐藏一些列,例如ID 以下是数据的外观: scope.columns = [ { 'Name': 'ID', Visible: false, }, { 'Name': 'Name', Visible: true, }, { 'Name
scope.columns = [
{
'Name': 'ID',
Visible: false,
},
{
'Name': 'Name',
Visible: true,
},
{
'Name': 'Description',
Visible: true,
},
];
scope.rows = [
{
ID: 1, // should be hidden because ID column above is set to Visible - false
Name: 'Test',
Description: 'Its a test',
},
{
ID: 2, // should be hidden because ID column above is set to Visible - false
Name: 'Test 2',
Description: 'Its a test 2',
}
];
这是生成表的HTML
:
<table class="table">
<!-- This part works fine and doesn't show some of the columns -->
<tr>
<th ng-repeat="column in columns | filter: { Visible: 'true'}">
<span ng-bind="column.Name"></span>
</th>
</tr>
<tr ng-repeat="row in rows">
<td ng-repeat="col in row"> <!-- This is the part where I need filter the cols based on the column.Visible above -->
{{col}}
</td>
</tr>
</table>
{{col}}
我尝试在
上添加一个过滤器,但我不确定如何基于作用域.columns
数组进行过滤。您可以使用ng if
->ng if=“columns[$index].Visible”
在您的示例中,如本中所示。您在$scope.rows
中的属性顺序必须与$scope.columns
中的属性顺序相同,以确保其正常工作
<div ng-controller="MyCtrl">
<table class="table">
<!-- This part works fine and doesn't show some of the columns -->
<tr>
<th ng-repeat="column in columns | filter: { Visible: true}">
<span ng-bind="column.Name"></span>
</th>
</tr>
<tr ng-repeat="row in rows">
<td ng-repeat="col in row" ng-if="columns[$index].Visible">
{{col}}
</td>
</tr>
</table>
</div>
{{col}}
太好了,谢谢。我完全忘记了$index
@Apostrofix很高兴能帮助你。