ngScreening - angular 筛选器

ngScreening v0.4.9

angular筛选器组件
通过控制器定义数据,screening帮你完成数据的渲染、监听、过滤等功能。

DEMO

http://moerj.github.io/ngScre...

Getting Started

npm install ng-screening

require('angular');//在使用前,你需要引入 angular

require('ngScreening');//引入组件

angular.module('yourProject',['ngScreening']);//注册组件

How to use

  1. 布局: 在html页面上定义好容器

  2. 数据操作: 传入数据,开启监听

  3. callback 响应筛选数据变化

布局

ng-screening

筛选器的整体容器框



    ...




...

screening

定义一个筛选行



    
        
    

    
        
    

screening-checkbox

多选筛选器


    
    

screening-radio

单选筛选器


    
    

screening-div

自定义筛选容器


    
        
    

screening-flex

弹性容器布局,flex中的元素会均分screening行剩余部分

而当screening中只有flex布局时,screening的label参数会被禁用

justify-content

screening-flex指令可以接收的参数,设置flex的均分方式,具体参数同css-flex

当screening有混合布局时,默认justify-content:center


    
        
    
    
        
    
    
        
    

screening-toggle

这个指令写在组件外部的按钮上,用来定义一个外部toggle按钮

    

数据操作

data

传入数据,自动渲染,自动绑定

app.controller('yourCtrl',function ($scope) {
    $scope.yourData = [
        {
            name:'香蕉'
        },
        {
            name:'菠萝'
        },
        {
            name:'梨子'
        }
    ]
})

isChecked

defualt: undefined
设置数据,视图上会响应已选中的数据

app.controller('yourCtrl',function ($scope) {
    $scope.yourData = [
        {
            name:'香蕉',
            isChecked: true //视图上香蕉将会选中
        },
        {
            name:'菠萝'
        },
        {
            name:'梨子'
        }
    ]
})

isHidden

defualt: undefined
设置一个选择项隐藏

app.controller('yourCtrl',function ($scope) {
    $scope.yourData = [
        {
            name:'香蕉',
            isHidden: true //视图上香蕉将会隐藏
        },
        {
            name:'菠萝'
        },
        {
            name:'梨子'
        }
    ]
})

监听

screening-event

default: 'change'
监听dom元素事件,事件触发时会执行callback



    
    

    
    

screening-watch

监听数据模型,模型改变时会执行callback




数据更新

callback

定义一个你的回调函数,它会在数据更新时通知你



    ...
app.controller('yourCtrl',function ($scope) {
    $scope.yourCallback = function () {
        // 每次数据更新会执行这个函数
    }
})

serarch

定义搜索回调函数,界面会生成一个搜索按钮


    ...
app.controller('yourCtrl',function ($scope) {
    $scope.yourSearch = function () {
        // 按钮点击后,会执行这个函数
    }
})

reset

定义重置回调函数,界面会生成一个重置按钮。
点击按钮会重置组件内的数据。包括:单选组、多选组的选中状态,原生dom的输入值,screening-watch的ngModel


    ...
app.controller('yourCtrl',function ($scope) {
    $scope.yourReset = function () {
        // 按钮点击后,会执行这个函数
    }
})

当然,如果你不需要 reset 的回调,这样写就可以了。


    ...

API - 服务

getChecked()

过滤掉未选择的数据,返回一个新数据

// 别忘了依赖注入 ngScreening
app.controller('yourCtrl',function ($scope, ngScreening) {
    // 初始数据
    $scope.yourData = [
        {
            name:'香蕉',
            isChecked: true
        },
        {
            name:'菠萝',
            isChecked: true
        },
        {
            name:'梨子'
        }
    ]
    // 每次数据更新会执行这个函数
    $scope.yourCallback = function () {
        // 将选中的数据筛选出来,返回一个新的数据
        var newData = ngScreening.getChecked($scope.yourData);
        console.log(newData);
    }
})

resize()

重置screening尺寸,自动显示或隐藏伸缩按钮

app.controller('yourCtrl',function ($scope, ngScreening) {
    // 重置页面上所有screening容器
    ngScreening.resize()

    // 重置指定的screening容器,参数为DOM对象
    ngScreening.resize(DOM)

})

toggle()

展开或收起整个组件

app.controller('yourCtrl',function ($scope, ngScreening) {
    // 控制页面上所有screening容器
    ngScreening.toggle()

    // 控制指定的screening容器,参数为DOM对象
    ngScreening.toggle(DOM)

})

OPTIONS 配置参数

label

设置筛选行标题


    ...

initrows

defualt: undefined
初始化显示的 screening screening-checkbox screening-radio 的行数



    ... 1 ...
    ... 2 ...
    ... 3 ...
    ... 被隐藏 ... 




    
    
        
    




    ...



    
        
    

multi-name

default: checkbox-全选, radio-单选
全选的控制按钮名称





width

screening-div设置宽度


important

让行常驻显示,不受外框隐藏控制


class - 公共样式

在 screening 行中的元素可以用的公共样式如下

  • size-lg 大尺寸

  • size-md 中尺寸

  • size-sm 小尺寸

Support

  • IE 9+

  • angular 1.x

你可能感兴趣的:(javascript,筛选,angularjs)