效果图

用到的工具

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. 使用java列举所有给定数组中和为定值的组合

    import java.util.Arrays; public class SolveProb { ]; ;// 记录当前 public SolveProb() { } public static v ...

  2. MUI 提问框多个按钮的回调函数

    var btns = new Array("按钮1", "按钮2"); mui.confirm("这是信息", "这是标题&quo ...

  3. 跟随大神实现简单的Vue框架

    自己用vue也不久了,学习之初就看过vue实现的原理,当时看也是迷迷糊糊,能说出来最基本的,但是感觉还是理解的不深入,最近找到了之前收藏的文章,跟着大神一步步敲了一下简易的实现,算是又加深了理解. 原 ...

  4. 一些iOS面试基础题总结

    一些iOS面试基础题总结 目录 多线程 AutoLayout objc_msgSend Runtime 消息转发 Category NSObject 与 objc_class Runloop Auto ...

  5. 当async: true 时,ajax请求是异步的

    方法beforeSend,用于在向服务器发送请求前添加一些处理函数.   type:"GET",//通常会用到两种:GET,POST.默认是:GET      url:" ...

  6. Gnome Ubuntu16安装Nvidia显卡396驱动,CUDA9.2以及cudnn9.2

    深度学习环境配置,安装Nvidia显卡驱动,CUDA以及cudnn OS:ubuntu 16.04;driver: nvidia 396;CUDA: 9.2cudnn: 9.2 卸载原有Nvidia驱 ...

  7. Go基础学习(二)

    数组[array] 数组定义[定义后长度不可变] 12 symbol := [...]string{USD: "$", EUR: "€", GBP: " ...

  8. Linux用户组的添加及属性的更改

    用户组的创建: 12345 groupadd [OPTION] 组名 -g GID 指明GID号:[GID_MIN, GID_MAX] -r 创建系统组 CentOS 6: ID<500 Cen ...

  9. 你会选永生吗?NASA实验为火星宇航员提供年龄逆转药

    ​​宇宙辐射不仅是宇航员面临的问题.在乘坐飞机的过程中,我们所有人都会暴露在宇宙辐射中.一趟从伦敦到新加坡再到墨尔本的飞行中,人体受到的辐射量就相当于进行一次胸部X射线透视. ​在去年12月NASA举 ...

  10. O2O倒逼汽车行业改革:服务超越销售成重心

    汽车作为越来越普及的出行工具,已经进入千家万户.与其他家具.家电.服饰等产品不同,从新车销售到售后保养.保险购买.维修乃至报废阶段,都能细分化,形成一个个潜力巨大的垂直领域.而随着互联网元素的渗入,汽 ...