在刚刚结束的angular交易系统项目中有几个需求是让我感觉要花点时间的
后面两个我都选择了自己写指令去完成,键盘多选的指令目前在github上并没有发现过,而瀑布流的组件写的倒是挺多的,但是都不适合我,因为在项目中我们的布局比较复杂,github上的项目在我的布局上面使用并没有效果。所以自己写了后面两个指令。今天要讲的是我的第一个指令 ngKeybordSelect
ngKeyBordSelect
ng-keybord-select
The angular directive can be used to select(mulitselect) item by 'ctrl' and 'shfit' (使用指令完成系统常见的选择功能,例如ctrl多选,shfit批量选择的功能)
Update
删除了Event和services,刚开始设计的时候是时候广播事件,来处理选中状态的,但是后来发现这样处理会导致同一页面下不能由多个组件,也就是组件不能独立,所以使用grid-group-data来获取选中的数据
Bower
bower install --save-dev ng-keybord-select
Demo
Usage
<ANY grid-group grid-select-name> <ANY grid-check-all> </ANY> <ANY grid-selected grid-selected-item grid-selected-disabled> ..... </ANY> </ANY>
gridGroup Parameters
grid-select-name: 这个属性是用来绑定选择的字段,如果该字段为true则代表代表当前记录已经被选择
grid-group-data(新增): 这个属性是用来绑定选择的数据信息,他最终的得到的结果是选择的数据
gridSelected Parameters
Event(已废弃,使用grid-group-data代替所要实现的功能)
$rootScope.$on('selectEnd',function(event,data) { //data为你选择的数据 selectItems = data; })
Services(已废弃,使用grid-group-data代替所要实现的功能)
MulitGrid 提供了两个方法去获取选择的信息 getSelectItems 和 getItemsLength
angular,module('xxx') .controller('xxxxxCtrl',['MulitGrid',function(MulitGrid){ //获取选中的所有数据 var SelectItems = MulitGrid.getSelectItems(); //获取选中数据的数量 var SelectItemLength = MulitGrid.getItemsLength(); }])
就介绍到这里了,如果你觉得需要改进的地方欢迎@我,另外关于瀑布流和实现更优雅的Modal的框的文章我抽出时间写出来的
原文链接:https://www.f2er.com/angularjs/148995.html