如何在ngtable中创建嵌套网格?

时间:2014-06-24 20:09:36

标签: angularjs ng-grid ngtable

我正在尝试在我的ngtable中创建一个嵌套网格,如下所示:

 <table ng-table="tableParams" class="table">
      <tr ng-repeat="user in $data">
        <td data-title="'Name'">{{user.name}}</td>
        <td data-title="'Age'">{{user.age}}</td>
        <td data-title="'kids'">
          <table ng-table="nestedtableParams" class="table">
            <tr ng-repeat="nesteduser in $nesteddata">
              <td data-title="'Name'">{{nesteduser.name}}</td>
              <td data-title="'Age'">{{nesteduser.age}}</td>
            </tr>
          </table>
        </td>
      </tr>
    </table>

问题是:为什么嵌套数据不显示?这是一个傻瓜: http://plnkr.co/edit/dKTtU89f7z6nQptgEZxN?p=preview

1 个答案:

答案 0 :(得分:2)

通过将数据添加到$scope :(部分示例代码)

来实现此目的
$scope.nesteddata = [{
    name: "Kid Moroni",
    age: 50
}, {
    name: "Kid Tiancum",
    age: 43
}, {
    name: "Kid Jacob",
    age: 27
}, {
    name: "Kid Nephi",
    age: 29
}, {
    name: "Kid Enos",
    age: 34
}];

然后,在控制器函数中,请参考这些$scope变量:

$scope.nestedtableParams = new ngTableParams({
    page: 1, // show first page
    count: 10 // count per page
}, {
    total: $scope.nesteddata.length, // length of data
    getData: function($defer, params) {
        $defer.resolve($scope.nesteddata.slice((params.page() - 1) * params.count(), params.page() * params.count()));
    }
});

最后在标记中我遗漏了$ prefix,因为这些数据现在在范围内:

<table ng-table="tableParams" class="table">
    <tr ng-repeat="user in data">
        <td data-title="'Name'">{{user.name}}</td>
        <td data-title="'Age'">{{user.age}}</td>
        <td>
            <table ng-table="nestedtableParams" class="table">
                <tr ng-repeat="user in nesteddata">
                    <td data-title="'Name'">{{user.name}}</td>
                    <td data-title="'Age'">{{user.age}}</td>
                </tr>
            </table>
        </td>
    </tr>
</table>

Working Plunker(虽然我怀疑像这样嵌套网格是有意义的)