首先需要使用指令(directives),然后共享socpe对象即可,html里输入:
<div class="pages">
<page-html page="{{pageData.page}}" pageTotal="{{pageData.pageTotle}}" method="read"></page-html>
</div>
directives文件中创建pageHtml指令:
.directive("pageHtml",function () {
return{
restrict:'EA',
replace:true,
link:function (scope,ele,attr,ctrl) {
scope.initPage = function(){
scope.pages = [];
if(typeof scope.pageData == "object" && scope.pageData.pageTotle > 1){
var i = scope.pageData.page;
i -= 2;
if(i < 1){
i = 1
}
for(;i <= scope.pageData.pageTotle; i++){
scope.pages.push(i)
if(scope.pages.length >= 5){
break;
}
}
}
}
scope.initPage()
},
controller: function ($scope, $element, $attrs) {
var _method = $attrs.method
$scope.selectPage = function(page){
if(page == "pre"){
if($scope.pageData.page > 1){
$scope.pageData.page--;
page = $scope.pageData.page;
}
}else if(page == "next"){
if($scope.pageData.page < $scope.pageData.pageTotle){
$scope.pageData.page++;
page = $scope.pageData.page;
}
}else{
$scope.pageData.page = page;
}
if($scope.pageData.page > 0 && $scope.pageData.page <= $scope.pageData.pageTotle){
$scope.initPage()
if(typeof _method == "string"){
$scope[_method](page);
}else{
$scope.read(page);
}
}
}
},
template: '<nav ng-if="pageData.pageTotle > 1"><ul class="pagination">' +
'<li><a class="disabled cursor-pointer" ng-click="selectPage(\'pre\')"><span aria-hidden="true">上一页</span></a></li>' +
'<li ng-repeat="(i,n) in pages track by i" ng-click="selectPage(n)" class="cursor-pointer {{n == pageData.page ? \'active\': \'\'}}"><a>{{n}}</a></li>'+
'<li><a class="Previous cursor-pointer" ng-click="selectPage(\'next\')"><span aria-hidden="true">下一页</span></a></li>' +
'</ul></nav>'
}
})
一个简单的分页效果就出来了。

