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

AngularJS - ng-repeat Showing single records Multiple Times

本文关键字:显示 单个 记录 ng-repeat AngularJS      更新时间:2023-09-26

我正在使用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),每一行显示5次。类似地,如果我将计数设置为10,则每条记录将显示10次。

我无法理解这个场景

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

给了我正确的长度,那么它也应该正确地迭代。

注:我的getData()方法在控制器被调用两次不知道为什么?

任何关于这方面的帮助/指导将非常感谢。谢谢:-)

通过将'JS'和'CSS'文件替换为最新的文件来修复此问题。