Angularjs 如何筛选和排序ngtable中的数组元素?

Angularjs 如何筛选和排序ngtable中的数组元素?,angularjs,ngtable,Angularjs,Ngtable,我在ngtable中使用了一个数组,但在筛选数据时需要帮助。当我单击标题时,我无法进行排序。请帮忙 HTML 代码的问题在于,数据数组只包含字符串而不包含对象,因此当您有sortable=“valueOf()[0]”时,它只基于第一个字符进行过滤。 解决方法是使用对象。以下是需要更新的相关代码: HTML 静止过滤器工作不正常eg:ba无法给我任何值,尽管数据已经bay-local-mysql点击标题进行过滤是您想要的,对吗http://g.recordit.co/vjbWcycZcd.gif感

我在ngtable中使用了一个数组,但在筛选数据时需要帮助。当我单击标题时,我无法进行排序。请帮忙

HTML


代码的问题在于,数据数组只包含字符串而不包含对象,因此当您有
sortable=“valueOf()[0]”时,它只基于第一个字符进行过滤。

解决方法是使用对象。以下是需要更新的相关代码:

HTML


静止过滤器工作不正常
eg:ba
无法给我任何值,尽管数据已经
bay-local-mysql
点击标题进行过滤是您想要的,对吗<代码>http://g.recordit.co/vjbWcycZcd.gif感谢您在排序方面的帮助,但我在筛选和排序方面都需要帮助。在筛选或搜索中,仅第一个字符搜索正在工作。我使用过滤器和搜索作为一个术语。抱歉搞混了,谢谢。您已将数据更改为map,这解决了我的问题,但可能有人来寻找使用数组元素的解决方案。@abi1964“数组元素”可能表示对象或普通字符串,因此问题的标题不具体。我从未使用过ngTable,我的解决方案仅基于ngTable文档,在这些文档中,我没有找到一个只包含字符串的简单数组的解决方案。
<table class="table" ng-table="namingConventionParams" show-filter="true">
    <tr ng-repeat="item in $data | orderBy:'toString()'">
        <td style="word-break:break-all" data-title="items.tableHeader" align="left" filter="{ '0': 'text' }" sortable="'valueOf()[0]'">{{item}}</td>
    </tr>
</table>
$scope.namingConventionParams = new ngTableParams({
    page: 1, // show first page
    count: 10
}, {
    defaultSort: "asc",
    total: $scope.items.instanceData.length, // length of data
    counts: [],
    getData: function($defer, params) {
        var data = $scope.items.instanceData;
        var orderedData = params.filter() ? $filter('filter')(data, params.filter()) : data;
            orderedData = params.sorting() ? $filter('orderBy')(orderedData, params.orderBy()) : orderedData;
            params.total(orderedData.length);
            $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));            
    }
});
<td ... filter="{'name':'text'}" sortable="name">{{item.name}}</td>
var data = $scope.items.instanceData.map(function(text) {
  return {name: text};
});