AngularJS - ng-repeat多次显示单个记录

时间:2014-08-05 09:10:16

标签: javascript angularjs grails angularjs-ng-repeat ng-repeat

我正在使用AngularJS。我从ng-repeat得到了奇怪的行为。我有一个控制器,它将数据返回给ng-repeat,例如:

.....
//My other JS Functions
.....
var app = angular.module('main', ['ngTable']).
        controller('DemoCtrl', function($scope, ngTableParams) {
            var data = [
                //data in JSON form
            ];

            $scope.tableParams = new ngTableParams({
                page: 1,            // show first page
                count: 5           // count per page
            }, {
                total:data.length,
                getData: function($defer, params) {
                    var slicedData = data.slice((params.page() - 1) * params.count(), params.page() * params.count());
                    alert(slicedData.length);
                    console.log(slicedData);
                    $defer.resolve(slicedData);
                }
            });
        })

所以,现在有一点需要注意的是,在我传递给它之后,我得到了预期的数据:

$defer.resolve(slicedData);

所以,这里似乎没有问题,因为它传递了所需的数据。 现在,我有ng-repeat,我以表格的形式显示数据,如:

 <table ng-table="tableParams" class="table ng-table-responsive">            

            <tr ng-repeat="d in $data">

                <td data-title="Name">
                    {{d.id}}
                </td>
                <td data-title="length">{{$data.length}}</td>
                <td data-title="Age">
                    {{d.ciscoID}}
                </td>
            </tr>
 </table>

所以,这里我得到的精确长度是5.但是显示的记录(行)数是25(5 * 5),每行显示五次。同样,如果我将计数设置为10,那么每条记录将显示十次。

我无法理解这种情况为

<td data-title="length">{{$data.length}}</td>

给我正确的长度,然后它也应该正确迭代。

P.S。控制器中的getData()方法被调用了两次,不知道为什么?

对此有任何帮助/指导将受到高度赞赏。谢谢: - )

1 个答案:

答案 0 :(得分:0)

这个问题只是通过更换&#39; JS&#39;来解决。和&#39; CSS&#39;最新的文件。