angularjs表格ng-table使用備忘錄_node.js

來源:互聯網
上載者:User

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

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" href="http://bazalt-cms.com/assets/ng-table/0.3.2/ng-table.css" />  <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資料:

[{      "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"    }]

以上就是本文的全部內容,希望對大家的學習有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.