效果图

用到的工具

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的更多相关文章

  1. 模仿angularjs写了一个简单的HTML模版和js数据填充的示例

    <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  2. 只是一个用EF写的一个简单的分页方法而已

    只是一个用EF写的一个简单的分页方法而已 慢慢的写吧.比如,第一步,先把所有数据查询出来吧. //第一步. public IQueryable<UserInfo> LoadPagesFor ...

  3. 写了一个简单的CGI Server

    之前看过一些开源程序的源码,也略微知道些Apache的CGI处理程序架构,于是用了一周时间,用C写了一个简单的CGI Server,代码算上头文件,一共1200行左右,难度中等偏上,小伙伴可以仔细看看 ...

  4. 自己写的一个简单PHP采集器

    自己写的一个简单PHP采集器 <?php //**************************************************************** $url = &q ...

  5. 写了一个简单可用的IOC

    根据<架构探险从零开始写javaweb框架>内容写的一个简单的 IOC 学习记录    只说明了主要的类,从上到下执行的流程,需要分清主次,无法每个类都说明,只是把整个主线流程说清楚,避免 ...

  6. 写了一个简单的 Mybatis

    写了一个简单的 Mybatis,取名 SimpleMybatis . 具备增删改查的基本功能,后续还要添加剩下的基本数据类型和Java集合类型的处理. 脑图中有完整的源码和测试的地址 http://n ...

  7. 利用HttpClient写的一个简单页面获取

    之前就听说过利用网络爬虫来获取页面,感觉还挺有意思的,要是能进行一下偏好搜索岂不是可以满足一下窥探欲. 后来从一本书上看到用HttpClient来爬取页面,虽然也有源码,但是也没说用的HttpClie ...

  8. 今天写了一个简单的新浪新闻RSS操作类库

    今天,有位群友问我如何获新浪新闻列表相关问题,我想,用正则表达式网页中取显然既复杂又不一定准确,现在许多大型网站都有RSS集合,所以我就跟他说用RSS应该好办一些. 一年前我写过一个RSS阅读器,不过 ...

  9. cJSON: 一个用c写的一个简单好用的JSON解析器

    转自:http://blog.csdn.net/chenzhongjing/article/details/9188347 下载地址: http://sourceforge.net/projects/ ...

随机推荐

  1. Android开发之《ffmpeg解码mjpeg视频流》

    MJPEG格式和码流分析,MJPEG格式的一些简介 FFmpeg解码USB摄像头MJPEG输出:http://blog.csdn.net/light_in_dark/article/details/5 ...

  2. MySQL数据类型(DATA Type)与数据恢复与备份方法

    一.数据类型(DATA Type)概述 MySQL支持多种类型的SQL数据类型:数字类型,日期和时间类型,字符串(字符和字节)类型以及空间类型 数据类型描述使用以下约定: M表示整数类型的最大显示宽度 ...

  3. 自然语言分析工具Hanlp依存文法分析python使用总结(附带依存关系英文简写的中文解释)

    最近在做一个应用依存文法分析来提取文本中各种关系的词语的任务.例如:text=‘新中国在马克思的思想和恩格斯的理论阔步向前’: 我需要提取这个text中的并列的两个关系,从文中分析可知,“马克思的思想 ...

  4. Openstack neutron学习

    最近在学习openstack neutron的东西,记录下自己的一些理解. 网络基础知识 Switches & Vlan交换机的作用是来连接设备,实现互通的.network host之间通过交 ...

  5. 高效JS简化版

    详:.doc (颜色标注)2章17条 2018.6.24 星期日 1:24 第 1 章 让自己习惯 JavaScript 第 1 条:了解你使用的 JavaScript 版本 ES5 引入了另一种版本 ...

  6. 杂记:VMware中为mac虚拟机扩容

    之前在VMware中安装Mac虚拟机时,硬盘选的是默认的40G,后来用的过程中随着软件的安装,特别是安装完Xcode和QT5.9之后,可用空间只剩不到3G,每次开机之后都会提醒空间不足,需要清理空间, ...

  7. 利用Nginx或koa

    最近在做上传的图片的需求,思考上传之后的图片怎么访问的问题,因为后端是Node,一开始尝试写一个专门的接口通过传入图片的path来查找,试了一下感觉并不理想,因为要为每种类型的文件设置Content- ...

  8. Android系统使用Shell脚本预装apk

    客户需求:需要在Android系统预安装一个或者若干个apk,客户可以选择自行卸载并且卸载后系统再次启动并不会再次自动安装. 考虑到需要批量安装应用,我这里考虑到使用灵活的shell脚本.shell脚 ...

  9. marquee上下无缝滚动

    <!DOCTYPE html><html><head><meta charset="utf-8"><meta name=&qu ...

  10. CMSampleBufferRef解析

    CMTime:64位的value,32位的scale, media的时间格式 CMVideoFormatDesc:video的格式,包括宽高.颜色空间.编码格式.SPS.PPS CVPixelBuff ...