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
规划: 在html页面上定义好容器
数据操纵: 传入数据,开启监听
callback 相应挑选数据变化
规划
ng-screening
挑选器的团体容器框
<!-- 建立一个挑选器的外壳 -->
<ng-screening>
...
</ng-screening>
<!-- 建立一个挑选器外壳 -->
<!-- 这类体式格局能够处理:初始化页面时内部的实在dom暴露,致使页面构造跳动 -->
<div class="ngScreening">
...
</div>
screening
定义一个挑选行
<ng-screening>
<screening>
<!-- 第一行 -->
</screening>
<screening>
<!-- 第二行 -->
</screening>
</ng-screening>
screening-checkbox
多选挑选器
<screening>
<!-- 天生checkbox范例的挑选器 -->
<screening-checkbox data="yourData"></screening-checkbox>
</screening>
screening-radio
单选挑选器
<screening>
<!-- radio -->
<screening-radio data="yourData"></screening-radio>
</screening>
screening-div
自定义挑选容器
<screening>
<screening-div label="自定义挑选:">
<input type="text" placeholder="查询数据">
</screening-div>
</screening>
screening-flex
弹性容器规划,flex中的元素会均分screening行盈余部份
而当screening中只要flex规划时,screening的label参数会被禁用
justify-content
screening-flex指令能够吸收的参数,设置flex的均分体式格局,详细参数同css-flex
当screening有夹杂规划时,默许justify-content:center
<screening>
<screening-flex label="flex容器1">
<input type="text">
</screening-flex>
<screening-flex label="flex容器2">
<input type="text">
</screening-flex>
<screening-flex label="flex容器3">
<input type="text">
</screening-flex>
</screening>
screening-toggle
这个指令写在组件外部的按钮上,用来定义一个外部toggle按钮
<button screening-toggle>外部掌握按钮(收起/睁开)</button>
数据操纵
data
传入数据,自动衬着,自动绑定
<screening-radio data="yourData"></screening-radio>
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-div label="搜刮:">
<!-- 监听监听输入框change事宜 -->
<input screening-event type="text" ></input>
<!-- 监听监听按钮click事宜 -->
<button screening-event="click" type="button" >搜刮</button>
</screening-div>
screening-watch
监听数据模子,模子转变时会实行callback
<input type="text" ng-model="yourData">
<!-- screening-watch 能够在挑选器内恣意位置 -->
<screening-watch data="yourData"></screening-watch>
数据更新
callback
定义一个你的回调函数,它会在数据更新时关照你
<!-- callback 只能定义在 ng-screening 上 -->
<ng-screening callback="yourCallback()">
...
</ng-screening>
app.controller('yourCtrl',function ($scope) {
$scope.yourCallback = function () {
// 每次数据更新会实行这个函数
}
})
serarch
定义搜刮回调函数,界面会天生一个搜刮按钮
<ng-screening search="yourSearch()" >
...
</ng-screening>
app.controller('yourCtrl',function ($scope) {
$scope.yourSearch = function () {
// 按钮点击后,会实行这个函数
}
})
reset
定义重置回调函数,界面会天生一个重置按钮。
点击按钮会重置组件内的数据。包含:单选组、多选组的选中状况,原生dom的输入值,screening-watch的ngModel
<ng-screening reset="yourReset()" >
...
</ng-screening>
app.controller('yourCtrl',function ($scope) {
$scope.yourReset = function () {
// 按钮点击后,会实行这个函数
}
})
固然,假如你不须要 reset 的回调,如许写就能够了。
<ng-screening reset >
...
</ng-screening>
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
设置挑选行题目
<screening label="题目:">
...
</screening>
initrows
defualt: undefined
初始化显现的 screening screening-checkbox screening-radio 的行数
<!-- 默许显现3行挑选器,其他的会收起隐蔽 -->
<ng-screening initrows="3">
... 1 ...
... 2 ...
... 3 ...
... 被隐蔽 ...
</ng-screening>
<!-- 牢固初始化行数,隐蔽组件伸缩按钮 -->
<ng-screening>
<!-- checkbox组默许悉数显现,没有伸缩按钮 -->
<screening>
<screening-checkbox data="yourData" ></screening-checkbox>
</screening>
</ng-screening>
<!-- initrows == 最大行数,初始显现一切行,伸缩按钮显现 -->
<ng-screening initrows="100">
...
</ng-screening>
<ng-screening>
<screening initrows="2">
<!-- 子行顶用这类体式格局能够防备过剩部份隐蔽, 超越指定数值的行数-->
</screening>
</ng-screening>
multi-name
default: checkbox-全选, radio-单选
全选的掌握按钮称号
<!-- 掌握按钮点击后能够悉数选中或反选 -->
<screening-checkbox multi-name="全选"></screening-checkbox>
<!-- 单选的只要款式没有现实功用 -->
<screening-radio multi-name="单选"></screening-radio>
width
screening-div设置宽度
<!-- 设置容器为500像素 -->
<screening-div width="500px"></screening-div>
important
让行常驻显现,不受外框隐蔽掌握
<screening important>
</screening>
class – 大众款式
在 screening 行中的元素能够用的大众款式以下
size-lg 大尺寸
size-md 中尺寸
size-sm 小尺寸
Support
IE 9+
angular 1.x