NG-Table不使用嵌套数据结构

时间:2016-09-10 18:10:04

标签: javascript angularjs data-structures web-applications libraries

我正在尝试使用NG-Table库向我正在创建的Web应用程序中的用户显示数据,但似乎内置函数无法对这样构造的数据进行排序:

var data = [
{
generalInfo:{
    name: "Morty",
    age: 20
}
},
    {
generalInfo:{
    name: "Ricky",
    age: 20
}}];

我使用的实际数据库要求数据结构如下,所以我无法更改结构。我尝试更改我的HTML以匹配此格式,但过滤器元素不允许使用点表示法。

我的HTML看起来像这样:

<div ng-controller="appController as vm">
    <table ng-table="vm.tableParams" class="table table-bordered table- striped table-condensed" show-filter="true">
        <tr ng-repeat="user in $data">
            <td title="'Name'" filter="{ generalFeatures.name: 'text'}" sortable="'generalFeatures.name'">{{user.generalFeatures.name}}</td>
            <td title="'Age'" filter="{ generalFeatures.age: 'number'}" sortable="'generalFeatures.age'"> {{user.generalFeatures.age}}</td>
        </tr>
    </table>
</div>

我有什么办法按这种方式对数据进行排序吗?

1 个答案:

答案 0 :(得分:0)

我找到了这个问题的临时解决方案。我可以通过循环遍历嵌套对象中的所有属性并将它们添加到父对象来在父对象中创建新属性。

angular.forEach(data, function (user) {
    if(user.generalInfo != null){
        user.age = user.generalInfo.age;
        user.name = user.generalInfo.name;
    }
});