angularjs表格ng-table使用備忘錄
來源:易賢網(wǎng) 閱讀:2016 次 日期:2016-07-21 15:09:46
溫馨提示:易賢網(wǎng)小編為您整理了“angularjs表格ng-table使用備忘錄”,方便廣大網(wǎng)友查閱!

這篇文章主要為大家分享了angularjs表格ng-table使用備忘錄,感興趣的小伙伴們可以參考一下

項目中用到angularjs的表格ng-table,功能相當強大,像搜索、排序、checkbox、分頁、每頁表格顯示數(shù)目等都有。API,demo什么的也只能參考官網(wǎng)了。這里做個備忘,哪天肯定還會用到。

HTML:

<!DOCTYPE html>

<html>

<meta charset="utf-8"/>

<head>

  <script data-require="angular.js@*" data-semver="1.2.0-rc3-nonmin" src="angular.js"></script>

  <script data-require="ng-table@*" data-semver="0.3.0" src="ngTable.js"></script>

  <link data-require="ng-table@*" data-semver="0.3.0" rel="stylesheet" />

  <link data-require="bootstrap-css@*" data-semver="3.0.0" rel="stylesheet" href="bootstrap.min.css" />

  <link rel="stylesheet" href="style.css" />

  <script src="script.js"></script>

</head>

<body ng-app="main" ng-controller="DemoCtrl">

  <p><strong>Page:</strong> {{tableParams.page()}}

  <p><strong>Count per page:</strong> {{tableParams.count()}}

<p>Filter: <input class="form-control" type="text" ng-model="filter.$" /></p>

  <table ng-table="tableParams" show-filter="true" class="table">

    <tr ng-repeat="user in $data" ng-class="{ 'emphasis': user.money > 500 }">

      <td width="30" style="text-align: left" header="'ng-table/headers/checkbox.html'">

        <input type="checkbox" ng-model="checkboxes.items[user.organizationId]" />

      </td>

      <td data-title="'編號'" sortable="'organizationId'">

        {{user.organizationId}}

      </td>

      <td data-title="'名稱'" sortable="'name'">

        {{user.name}}

      </td>

    </tr>

  </table>

  <script type="text/ng-template" id="ng-table/headers/checkbox.html">

    <input type="checkbox" ng-model="checkboxes.checked" id="select_all" name="filter-checkbox" value="" />

  </script>

</body>

</html>

js:

var app = angular.module('main', ['ngTable']).

controller('DemoCtrl', function($scope, ngTableParams, NameService) {

  var data = NameService.data;

  $scope.tableParams = new ngTableParams(

   {

    page: 1,      // show first page

    count: 10,      // count per page

    sorting: {name:'asc'}

   },

   {

    total: 0, // length of data

    getData: function($defer, params) {

     NameService.getData($defer,params,$scope.filter);

    }

  });

  $scope.$watch("filter.$", function () {

    $scope.tableParams.reload();

  });

});

app.service("NameService", function($http, $filter){

 function filterData(data, filter){

  return $filter('filter')(data, filter);

 }

 function orderData(data, params){

  return params.sorting() ? $filter('orderBy')(data, params.orderBy()) : filteredData;

 }

 function sliceData(data, params){

  return data.slice((params.page() - 1) * params.count(), params.page() * params.count())

 }

 function transformData(data,filter,params){

  return sliceData( orderData( filterData(data,filter), params ), params);

 }

 var service = {

  cachedData:[],

  getData:function($defer, params, filter){

   if(service.cachedData.length>0){

    console.log("using cached data")

    var filteredData = filterData(service.cachedData,filter);

    var transformedData = sliceData(orderData(filteredData,params),params);

    params.total(filteredData.length)

    $defer.resolve(transformedData);

   }

   else{

    console.log("fetching data")

    $http.get("data.json").success(function(resp)

    {

     angular.copy(resp,service.cachedData)

     params.total(resp.length)

     var filteredData = $filter('filter')(resp, filter);

     var transformedData = transformData(resp,filter,params)

      

     $defer.resolve(transformedData);

    }); 

   }

  }

 };

 return service; 

});

json數(shù)據(jù):

[{

      "hidden": 1,

      "launchImage": "2015_4_9_12_bb7e0a446ed74ae7ad0a3554a54183bc_1298477763",

      "name": "張三",

      "orgId": 1498031949070997504,

      "organizationId": "1498031949070997504"

    }, {

      "hidden": 1,

      "launchImage": "http://7s1rmc.com1.z0.glb.clouddn.com/2015_4_9_12_0ab5b02cf1df4ac49a7376b820816307_2127491219|39e202124ac90ec531009b0edbbbe0ba",

      "name": "李四",

      "orgId": 1498046360909250560,

      "organizationId": "1498046360909250560"

    }]

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:angularjs表格ng-table使用備忘錄

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)