国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

AngularJS 與Bootstrap實(shí)現(xiàn)表格分頁(yè)實(shí)例代碼

2019-11-20 08:45:09
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 AngularJS 從開(kāi)始發(fā)布到現(xiàn)在使用的開(kāi)發(fā)的者越來(lái)越多,也表明大多數(shù)做前端的朋友在往這邊轉(zhuǎn),畢竟是Google 公司出品的產(chǎn)品啊,所以最近自己也在學(xué)習(xí)這部分知識(shí)。

AngularJS  Bootstrap實(shí)現(xiàn)表格分頁(yè):

最近一直學(xué)習(xí)Angular.js,在學(xué)習(xí)過(guò)程中也練習(xí)了很多的Demo,這里先貼一下表格+分頁(yè)。

先上圖看看最終結(jié)果:

 

不得不說(shuō)Angular.js代碼風(fēng)格很受人歡迎,幾十行代碼清晰簡(jiǎn)潔的實(shí)現(xiàn)了上面的功能。

首先表格的數(shù)據(jù)源來(lái)自于,Server.js 點(diǎn)擊下載。通過(guò)get取數(shù)后分頁(yè)顯示。

1.表格是通過(guò)ng-repeat來(lái)展示的,代碼如下:

<table class="table table-bordered">  <tr>    <th>index</th>    <th ng-repeat="(x,y) in items[0]">{{ x }}</th>  </tr>  <tr ng-repeat="x in items">    <td>{{ $index + 1 }}</td>    <td ng-bind="x.Name"></td>    <td ng-bind="x.City"></td>    <td ng-bind="x.Country"></td>  </tr></table>

$index是repeat的默認(rèn)參數(shù)。表格的列頭是通過(guò)數(shù)據(jù)源(json)的第一行循環(huán)取的key值。當(dāng)然要是Bootstrap要指定table的Class是table table-bordered。

2.分頁(yè)是也是用ng-repeat,不得不說(shuō)ng-repeat是常用指令。分頁(yè)代碼如下:

<nav>  <ul class="pagination">    <li>      <a ng-click="Previous()">        <span>上一頁(yè)</span>      </a>    </li>    <li ng-repeat="page in pageList" ng-class="{active: isActivePage(page)}" >      <a ng-click="selectPage(page)" >{{ page }}</a>    </li>    <li>      <a ng-click="Next()">        <span>下一頁(yè)</span>      </a>    </li>  </ul></nav>

這里用了ng-click事件指令。還用到ng-class指令

ng-class="{active: isActivePage(page)}"

上面的代碼是為了分頁(yè)選中的樣式。

這個(gè)表格加分頁(yè)是假分頁(yè),從后端取一次數(shù)據(jù),通過(guò)不同的分頁(yè)顯示json的篩選數(shù)據(jù)。

具體代碼+注釋?zhuān)?/strong>

<!-- 新 Bootstrap 核心 CSS 文件 --><link rel="stylesheet" ><style>  #divMain {    width: 500px;    margin: 0 auto;    margin-top: 100px;  }  nav {    position: relative;    width:100%;    height: 50px;  }  .pagination {    right: 0px;    position: absolute;    top: -30px;  }  nav li {    cursor: pointer;  }</style><div id="divMain" ng-app="myApp" ng-controller="myCtrl">  <table class="table table-bordered">    <tr>      <th>index</th>      <th ng-repeat="(x,y) in items[0]">{{ x }}</th>    </tr>    <tr ng-repeat="x in items">      <td>{{ $index + 1 }}</td>      <td ng-bind="x.Name"></td>      <td ng-bind="x.City"></td>      <td ng-bind="x.Country"></td>    </tr>  </table>  <nav>    <ul class="pagination">      <li>        <a ng-click="Previous()">          <span>上一頁(yè)</span>        </a>      </li>      <li ng-repeat="page in pageList" ng-class="{active: isActivePage(page)}" >        <a ng-click="selectPage(page)" >{{ page }}</a>      </li>      <li>        <a ng-click="Next()">          <span>下一頁(yè)</span>        </a>      </li>    </ul>  </nav></div><script src="http://apps.bdimg.com/libs/angular.js/1.5.0-beta.0/angular.js"></script><script type="text/javascript">  var app = angular.module("myApp", []);  app.controller("myCtrl", function ($scope, $http) {    $http.get("Service.js").then(function (response) {      //數(shù)據(jù)源      $scope.data = response.data.records;      //分頁(yè)總數(shù)      $scope.pageSize = 5;      $scope.pages = Math.ceil($scope.data.length / $scope.pageSize); //分頁(yè)數(shù)      $scope.newPages = $scope.pages > 5 ? 5 : $scope.pages;      $scope.pageList = [];      $scope.selPage = 1;      //設(shè)置表格數(shù)據(jù)源(分頁(yè))      $scope.setData = function () {        $scope.items = $scope.data.slice(($scope.pageSize * ($scope.selPage - 1)), ($scope.selPage * $scope.pageSize));//通過(guò)當(dāng)前頁(yè)數(shù)篩選出表格當(dāng)前顯示數(shù)據(jù)      }      $scope.items = $scope.data.slice(0, $scope.pageSize);      //分頁(yè)要repeat的數(shù)組      for (var i = 0; i < $scope.newPages; i++) {        $scope.pageList.push(i + 1);      }      //打印當(dāng)前選中頁(yè)索引      $scope.selectPage = function (page) {        //不能小于1大于最大        if (page < 1 || page > $scope.pages) return;        //最多顯示分頁(yè)數(shù)5        if (page > 2) {          //因?yàn)橹伙@示5個(gè)頁(yè)數(shù),大于2頁(yè)開(kāi)始分頁(yè)轉(zhuǎn)換          var newpageList = [];          for (var i = (page - 3) ; i < ((page + 2) > $scope.pages ? $scope.pages : (page + 2)) ; i++) {            newpageList.push(i + 1);          }          $scope.pageList = newpageList;        }        $scope.selPage = page;        $scope.setData();        $scope.isActivePage(page);        console.log("選擇的頁(yè):" + page);      };      //設(shè)置當(dāng)前選中頁(yè)樣式      $scope.isActivePage = function (page) {        return $scope.selPage == page;      };      //上一頁(yè)      $scope.Previous = function () {        $scope.selectPage($scope.selPage - 1);      }      //下一頁(yè)      $scope.Next = function () {        $scope.selectPage($scope.selPage + 1);      };    });  })</script>

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 常山县| 荥阳市| 咸宁市| 耒阳市| 台州市| 井陉县| 同江市| 麻江县| 长子县| 都安| 筠连县| 寻乌县| 汉阴县| 华蓥市| 永吉县| 荣昌县| 勃利县| 盈江县| 湟中县| 敦化市| 青田县| 墨竹工卡县| 顺昌县| 田东县| 滦南县| 峨山| 南漳县| 东阳市| 马山县| 临西县| 剑阁县| 巴里| 长沙县| 靖安县| 泗阳县| 会泽县| 彩票| 广东省| 布拖县| 务川| 木里|