angularjs表格ng-table使用備忘錄
項(xiàng)目中用到angularjs的表格ng-table,功能相當(dāng)強(qiáng)大,像搜索、排序、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)容,希望對大家的學(xué)習(xí)有所幫助。
相關(guān)文章
Nodejs?Socket連接池及TCP?HTTP網(wǎng)絡(luò)模型詳解
這篇文章主要為大家介紹了Nodejs?Socket連接池及TCP?HTTP網(wǎng)絡(luò)模型,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Node.js項(xiàng)目依賴問題的詳細(xì)解決步驟
在現(xiàn)代前端開發(fā)中,Node.js 和 npm 是不可或缺的工具,然而,隨著項(xiàng)目的迭代和依賴包的更新,我們常常會遇到依賴沖突、構(gòu)建失敗等問題,本文將通過一個實(shí)際案例,詳細(xì)講解如何解決 Node.js 項(xiàng)目中的依賴問題,包括升級 Node.js 和 npm、替換過時的依賴包、修復(fù)構(gòu)建錯誤等2025-02-02
使用Puppeteer實(shí)現(xiàn)頁面遍歷的示例代碼
很多時候我們需要遍歷我們的頁面來檢查頁面是否存在問題,以更好的保證可用性和安全性,下面就來講講如何使用puppeteer來實(shí)現(xiàn)頁面遍歷的功能吧2023-06-06
使用socket.io實(shí)現(xiàn)簡單聊天室案例
這篇文章主要介紹了使用socket.io實(shí)現(xiàn)簡單聊天室案例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
node上的redis調(diào)用優(yōu)化示例詳解
這篇文章主要給大家介紹了關(guān)于node上redis調(diào)用優(yōu)化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
NodeJS實(shí)現(xiàn)圖片上傳代碼(Express)
本篇文章主要介紹了NodeJS實(shí)現(xiàn)圖片上傳代碼(Express) ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06

