我试图在页面上包括分页,它似乎可以正常工作,但是我需要帮助的代码有问题。
在我的控制器中,我有一个范围变量,用于查询.factory返回的数据(用于ng-repeat中),并且需要为该范围变量分配空数组([]),以便可以使用它在我的分页标签中。我可以在angularjs中做到吗?
例如:
$scope.datalist = roll.query; //the same datalist(in ng-repeat) I want to reassign it that is;
$scope.datalist = []; //to be used as total-item in pagination
控制器
function($scope, rolls, $window, $http) {
$scope.datalist = rolls.query(); // return list of rolls
//paging
$scope.form = {};
$scope.datalist = []; //Here is my problem - it make ng-repeat return no data
$scope.pageSize = 10;
$scope.currentPage = 1;
}
HTML
<tr ng-repeat="tests in datalist | startFrom:(currentPage - 1) * pageSize | limitTo: pageSize >
<td>{{$index + 1}}</td>
<td>{{datalist.name}}</td>
</tr>
<pagination total-item="datalist.length" ng-model="currentPage"
item-per-page="pageSize">
</pagination>
运行代码时,$scope.datalist=[];
使ng-repeat不显示任何内容,但是当我注释掉该行代码时,应用程序仅显示前10个项目。我需要将我的数据解析为分页标记中的total-item
,请使datalist.length
正常工作吗?
欢呼
答案 0 :(得分:0)
首先,当您运行$scope.datalist = []
时,它将不返回任何数据。因此,您必须设置$scope.datalist
要显示的内容。其次,when I comment out that line of code the application display the first 10 items only
发生这种情况可能是由于代码limitTo: pageSize
有效。
答案 1 :(得分:0)
在解析之前,将数据列表长度复制到另一个变量,如下所示:-
function($scope, rolls, $window, $http) {
$scope.datalist = rolls.query(); // return list of rolls
//paging
$scope.form = {};
$scope.datalistLength = angular.copy($scope.datalist.length); //Here is my problem - it
//make ng-repeat return no data
$scope.pageSize = 10;
$scope.currentPage = 1;
}
现在使用此变量到您的分页标签中,如下所示:-
<pagination total-item="datalistLength" ng-model="currentPage"
item-per-page="pageSize">
</pagination>