0
,我發現了以下錯誤:試圖讓數組定義
angular.min.js:114TypeError: Cannot read property 'slice' of undefined at templateController.js:28
這是因爲該行的代碼:
$scope.filteredTemplates = $scope.templates.slice(begin, end);
這裏是我的代碼:
var template = angular.module('TemplateCtrl',['ui.bootstrap']);
template.controller('TemplateController',function($scope, Template){
var getTemplates = Template.all();
$scope.filteredTemplates = [];
$scope.currentPage = 1;
$scope.numPerPage = 10;
$scope.maxSize = 5;
getTemplates.success(function(response){
if(response[0] == 200){
$scope.templates = response[1];
}else{
//user wasn't logged in to view the templates (voorbeeld contracten)
console.log('Please log in');
}
});
$scope.numPages = function() {
return Math.ceil($scope.templates.length/$scope.numPerPage);
};
$scope.$watch('currentPage + numPerPage', function() {
var begin = (($scope.currentPage - 1) * $scope.numPerPage)
, end = begin + $scope.numPerPage;
$scope.filteredTemplates = $scope.templates.slice(begin, end);
});
});
我試圖在$scope.templates
中對我的數組進行分頁。
因此,我使用$watch()
方法來查看用戶在哪個頁面上。並根據用戶點擊的頁面在$scope.templates
中對數組進行切片。
但是,我正在使用回調,如您在.success()
方法中看到的。而回調的問題是你不知道什麼時候執行。
因此,$watch()
首先被執行,並看到$scope.templates
是不確定的。很高興我想問問,如果有人知道我仍然可以使這個分頁工作?