我尝试在ngTable的官方网页上找到第一个帮助,但没有结果。
我想用我的对象数组填充数据表(参见下面的示例) 通过文本或数字进行排序和过滤非常简单(在列#34;名称"和#34;备注") 但是我想要显示一列数据"用户"这是一组用户对象。我的表通过将所有用户添加到一列来显示数据。 但是现在我无法对数组的这些数据列进行排序或过滤。
也许我必须通过filter-options添加自定义过滤器,但我现在已经知道如何使这成为可能。
如果我可以预设"用户"的过滤器也会很棒。在我的控制器的ngTableParams中 - 例如"过滤器:{'用户':' A'}" (仅显示一个或多个名字=" A"的用户在用户列表中的项目。
希望有人可以帮助我。 Thx,Jorgen
DATA:
this.data = [{
name: 'Test A',
remark: 'test A',
users: [
{_id: 1234, firstname: 'A', lastname: 'B'},
{_id: 2345, firstname: 'B', lastname: 'C'},
{_id: 3456, firstname: 'C', lastname: 'D'},
{_id: 4567, firstname: 'D', lastname: 'E'},
]
},
{
name: 'Test B',
remark: 'test B',
users: [
{_id: 1234, firstname: 'A', lastname: 'B'},
{_id: 5678, firstname: 'E', lastname: 'F'},
{_id: 3456, firstname: 'C', lastname: 'D'},
]
},
{
name: 'Test C',
remark: 'test C',
users: [
{_id: 5678, firstname: 'E', lastname: 'F'}
]
}];
HTML:
<div class="table-responsive">
<table ng-table="myCtrl.tableParams" class="table table-condensed table-bordered table-striped table-vmiddle" show-filter="true">
<tr ng-repeat="item in $data">
<td data-title="'Name'" sortable="'name'" filter="{'name': 'text'}">{{item.name}}</td>
<td data-title="'Users'">
<span class="m-r-10" ng-repeat="user in item.users">{{user.firstname}} {{user.lastname}}</span>
</td>
<td data-title="'Remark'" sortable="'remark'" filter="{'remark': 'text'}">{{item.remark}}</td>
</tr>
</table>
</div>
控制器:
this.tableParams = new ngTableParams({
sorting: {name: 'asc'}
},
{
data: this.data
});
答案 0 :(得分:0)
如果你想在控制器中这样做:
angular.forEach(this.data, function (obj, idx) {
obj.filterOnUsers = [];
obj.filterOnUsers = $filter('filter')(obj.users, { firstname: obj.name });
});