用angularjs写的一个简单的grid table
效果图

用到的工具
1.需要先安装nodejs打开直接安装就好了
2.安装完成后使用 淘宝的源 国内速度快
安装方法
npm install -g cnpm --registry=https://registry.npm.taobao.org
以后直接使用cnpm 直接安装包就可以了
开始开发
1.打开命令进入到当前目录 然后输入 cnpm init
按照提示一步步走就可以了
输入完后会在当前文件夹建一个 package.json 文件
2.我们使用bower 来管理前端包
全局安装bower cnpm install bower -g
然后执行 bower init
安装需要使用的包来进行开发
bower install angularjs --save;
bower install bootstrap --save;
bower install angular-bootstrap --save;
bower 默认安装位置是在当前文件夹下的 bower_components 里面 可以新建一个 .bowerrc 文件来改变安装位置
.bowerrc文件
{
"directory":"dist/lib"
}
上面给一些不了解的同学了解一下 下面看一下代码
先写一个module
angular.module('kx.grid', ['kx.grid.tpls','ui.bootstrap']);
grid指令
angular.module('kx.grid').directive("grid", function () {
return {
restrict: 'E',
replace: true,
scope: {
config: '=',
columns: '='
},
templateUrl: "views/grid.html",
controller: 'gridController'
}
});
grid模版
<div>
<button class="btn btn-secondary" ng-click="add(config.defaultParams)">添加</button>
<form class="form-inline pull-right">
<div class="form-group" ng-repeat="column in columns | filter: {isSearchColumn:true}">
<label>{{column.caption}}</label>
<input ng-if="!column.items" type="text" ng-model="condition[column.fieldName]" class="form-control">
<select ng-if="column.items" class="form-control" ng-model="condition[column.fieldName]" ng-options="dbType.value as dbType.name for dbType in column.items"></select>
</div>
<button type="submit" ng-click="search()" class="btn btn-primary">查询</button>
</form>
<table class="table table-hover">
<thead>
<tr>
<th ng-repeat="column in columns | filter: {isListColumn:true}">{{column.caption}}</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in pagination.data">
<td ng-repeat="column in columns">
<grid-cell column="column" item="item"></grid-cell>
</td>
<td><button type="button" class="btn btn-outline-danger btn-sm" ng-click="del(item.id)">删除</button></td>
</tr>
</tbody>
<tfoot ng-if="config.isPagination&&pagination.pageCount>1">
<tr>
<td colspan="{{columns.length + 1}}">
<div ng-if="config.isPagination&&pagination.pageCount>1" class="pull-right">
<div class="pagination-info" ng-hide="paginationInfo.tipHide"><span class="ng-binding">共有{{pagination.total}}条</span>, <span class="ng-binding">每页显示:10条</span></div>
<ul class="pagination">
<li class="page-item" ng-class="{disabled: pagination.pageIndex == 1}"><a class="page-link" ng-click="pagination.pageIndex == 1 || load(1)">首页</a></li>
<li class="page-item" ng-class="{disabled: pagination.pageIndex == 1}"><a class="page-link" ng-click="pagination.pageIndex == 1 || load(pagination.pageIndex-1)">上一页</a></li>
<li class="page-item" ng-repeat="page in pagination.pageNumbers" ng-class="{active: page == pagination.pageIndex}"><a class="page-link" ng-click="load(page)">{{page}}</a></li>
<li class="page-item" ng-class="{disabled: pagination.pageIndex == pagination.pageCount}"><a class="page-link" ng-click="pagination.pageIndex == pagination.pageCount || load(pagination.pageIndex+1)">下一页</a></li>
<li class="page-item" ng-class="{disabled: pagination.pageIndex == pagination.pageCount}"><a class="page-link" ng-click="pagination.pageIndex == pagination.pageCount || load(pagination.pageCount)">尾页</a></li>
</ul>
</div>
</td>
</tr>
</tfoot>
</table>
</div>
其余直接在github上面看源代码
github源代码地址
用angularjs写的一个简单的grid table的更多相关文章
- 模仿angularjs写了一个简单的HTML模版和js数据填充的示例
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- 只是一个用EF写的一个简单的分页方法而已
只是一个用EF写的一个简单的分页方法而已 慢慢的写吧.比如,第一步,先把所有数据查询出来吧. //第一步. public IQueryable<UserInfo> LoadPagesFor ...
- 写了一个简单的CGI Server
之前看过一些开源程序的源码,也略微知道些Apache的CGI处理程序架构,于是用了一周时间,用C写了一个简单的CGI Server,代码算上头文件,一共1200行左右,难度中等偏上,小伙伴可以仔细看看 ...
- 自己写的一个简单PHP采集器
自己写的一个简单PHP采集器 <?php //**************************************************************** $url = &q ...
- 写了一个简单可用的IOC
根据<架构探险从零开始写javaweb框架>内容写的一个简单的 IOC 学习记录 只说明了主要的类,从上到下执行的流程,需要分清主次,无法每个类都说明,只是把整个主线流程说清楚,避免 ...
- 写了一个简单的 Mybatis
写了一个简单的 Mybatis,取名 SimpleMybatis . 具备增删改查的基本功能,后续还要添加剩下的基本数据类型和Java集合类型的处理. 脑图中有完整的源码和测试的地址 http://n ...
- 利用HttpClient写的一个简单页面获取
之前就听说过利用网络爬虫来获取页面,感觉还挺有意思的,要是能进行一下偏好搜索岂不是可以满足一下窥探欲. 后来从一本书上看到用HttpClient来爬取页面,虽然也有源码,但是也没说用的HttpClie ...
- 今天写了一个简单的新浪新闻RSS操作类库
今天,有位群友问我如何获新浪新闻列表相关问题,我想,用正则表达式网页中取显然既复杂又不一定准确,现在许多大型网站都有RSS集合,所以我就跟他说用RSS应该好办一些. 一年前我写过一个RSS阅读器,不过 ...
- cJSON: 一个用c写的一个简单好用的JSON解析器
转自:http://blog.csdn.net/chenzhongjing/article/details/9188347 下载地址: http://sourceforge.net/projects/ ...
随机推荐
- 分布式文件系统与HDFS
HDFS,它是一个虚拟文件系统,用于存储文件,通过目录树来定位文件:其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色. HDFS 的设计适合一次写入,多次读出的场景,且不 ...
- python socketserver 实现 ftp功能
需求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp server上随意切换目录 允许用户查看当前目 ...
- Tensorflow 错误集锦
文章目录 参考文献 本文记录笔者在Tensorflow使用上的一些错误的集锦,方便后来人迅速查阅解决问题. 我是留白. 我是留白. CreateSession still waiting for re ...
- api安全规范
1. API签名的目的 校验API调用者的身份,是否有权访问 校验请求的数据完整性,防止被中间人篡改 防止重放攻击 2.基本概念 AccessKey: API使用者向API提供方申请的Ac ...
- 用jekyll和github把网站建起来!
先把这些天学习的用jekyll在github上搭建网站的步骤记录下来,留作参考. #安装jekyll 确定系统安装 Git, Ruby, RubyGems, Nodejs, Python2.7. 如何 ...
- in和exists比较
in是把外表和内表作hash 连接,而exists 是对外表作loop 循环,每次loop 循环再对内表进行查询. 一直以来认为exists 比in 效率高的说法是不准确的.如果查询的两个表大小相当, ...
- Spring Boot 2.x基础教程:使用MyBatis访问MySQL
之前我们已经介绍了两种在Spring Boot中访问关系型数据库的方式: 使用spring-boot-starter-jdbc 使用spring-boot-starter-data-jpa 虽然Spr ...
- datatables异步获取数据、简单实用
IKC项目总结 一.认证难题管理模块 1. 如何使用datatables进行获取数据内容 datatables简介:Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何H ...
- .Net Core 使用jenkins 部署到远程服务器docker
最近一直在研究docker和kubernetes,小型的项目其实也用不到k8s,本文就是描述如何用jenkins 进行构建asp.net core 3.1项目并且发布到远程服务器docker容器中.本 ...
- MVC09
1.委托(delegate)调用静态方法 委托类似于C++中的函数指针. 某方法仅仅在执行的时候才能确定是否被调用. 是实现事件和回调函数的基础. 面向对象,安全性高. using System; u ...