# angularjs-directive-dy **Repository Path**: xuwenliu/angularjs-directive-dy ## Basic Information - **Project Name**: angularjs-directive-dy - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-07-30 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # angularjs-directive-dy 这是一个angularjs指令库,基于angularjs 1.5+。这个库提供了一些我们常用的组件,例如: * 更美观更强大的select下拉指令; * 简单便捷的step指令,只需要简单的几行代码,便可以实现复杂的视觉效果; * 美观的图片上传uploader指令,可以实现本地预览; * ... 预览地址:https://rilyzhang.github.io/angularjs-directive-dy 下面内容是详细文档。 > ## 目录 > 1. [指令的引入](#import) > 2. [dy-selector指令](#selector) > 3. [dy-step指令](#step) > 4. [dy-tooltip指令](#tooltip) > 5. [dy-uploader指令](#uploader) > 6. [dy-tree指令](#tree) ## 指令的引入 使用npm引入指令: ***Example:*** ```text npm i -S angularjs-directive-dy ``` ```javascript import directiveDy from 'angularjs-directive-dy' var app = angular.module('yourModuleName', [directiveDy]); ``` 或者可以直接去dist文件夹中寻找编译好的js脚本。别忘了引入样式 ## dy-selector指令 >dy-selector指令是一个模拟select下拉框的指令,但是它比select下拉框更加强大和美观。 当你的选项有很多时,它可以进行模糊匹配,让可选项变少。此外,它还支持字符串数组,对象数组。
***Example:*** ```html ``` *(注:传入的数组元素可以为`string`类型,也可以为object类型。如果传入`object`类型,则必须是{ dyKey : xxx, dyVal : xxx }格式)* **使用就是这么简单,接下来我们看看属性详解:** ``ngModel``: 这个大家都懂的,不做解释。 ``dyList``: 传入一个数组,可以为string数组,也可以为object类型。 ``disabled``: 只读模式,加上这个属性(无需赋值)后将无法操作下拉框。 ~~``zIndex``~~: 已废弃。层高由指令自动定级,从9999递减。 ``mode``: 当存在mode属性,并且值为simple时,可屏蔽匹配搜索框。 ``placeholder``: 尚未选择列表时的提示文字。 ``objectHandle``: 用于映射dyList对象的字段。当你的对象过于复杂时,你无需将对象转换为指定类型, 因为这个属性可以帮你做这些事情! ``dyChange``(新属性):function类型,用于监听selector值得变化。 下面分别演示了传入字符串和传入数组: ***Example:*** ```javascript // 传入String类型的数组 $scope.dyList = ['IOS', 'Android', 'windows phone', 'Symbian OS']; ``` ```javascript // 传入Object类型的数组 $scope.dyList = [ {dyKey: '苹果', dyVal: '001'}, {dyKey: '三星', dyVal: '002'}, {dyKey: '华为', dyVal: '003'}, {dyKey: '小米', dyVal: '004'} ]; ``` 如果你的对象是这个样子的,你又懒得做转换,那么,你只需要做好字段映射,objectHandle属性可以帮你做这些工作: ***Example:*** ```javascript $scope.dyList3 = [ {brand: '苹果', encoding: '001'}, {brand: '三星', encoding: '002'}, {brand: '华为', encoding: '003'}, {brand: '小米', encoding: '004'}, {brand: '锤子', encoding: '005'} ]; ``` ```html ``` *更新于2018.06.25* ## dy-step指令 >这个指令是为了展示进度的指令,例如我们注册一个账号时,网页上会显示“第一步”、“第二步”、 “第三步”等小箭头。这个指令将其样式封装在内,以便于更简单的操作。 ***Example:*** ```html ``` **属性详解:** ``step``: 当前所在的步数。 ``stepList``: 步数数组。 *特别注意:此指令适用于白色背景的页面。如果页面背景是其它颜色,请在自己的样式文件中重写小箭头的颜色。* ## dy-tooltip指令 >当我们鼠标挪到某个元素上,像提示用户的时候,通常会选中在该元素上加入title属性,但又苦于原生title属性的样式不太美观, 这时候dy-tooltip属性或许可以帮到你。 不多说,直接贴代码: ***Example:*** ```html
...
``` ## dy-uploader 指令 > 这是一个封装的图片上传组件,ngModel中绑定的为file类型的数组,支持本地图片预览。 ***Example:*** ```html ``` **属性详解:** ``ngModel``: 用于绑定file类型的数组。 ``maxLength``:上传最大数量(default: 20)。 ``maxSize``:限制文件大小,单位为字节(default: 10M)。 ``fileType``:文件类型,值为正则表达式字面量(default: /.(jpe?g|png|bmp|gif)$/i)。 ``fileTypeError``: 当上传文件类型不匹配时调用此方法。 ``maxSizeError``: 当上传文件超过限制大小是调用此方法。 ``maxLengthError``: 当上传文件超过限制数量是调用此方法。 ``repeatNameError``: 当上传重名是调用此方法。 ## dy-tree 指令 > 这个指令可以构造一个简单的目录树结构,目前仅支持单选,后续将补充其他功能。 ***Example:*** ```html ``` **属性详解:** ``ngModel``:用于绑定获取单选值。 ``treeData``:用于构造树模型的数据。 **treeData数据结构** treeData为一个对象数组。目前,这个属性的数据结构比较开放,只有``name``属性为必要的属性。若其中包含层级结构的子元素, 使用``children``将子元素包裹即可。*``children``也是一个对象数组*。 ***Example:*** ```javascript $ctrl.dataList = [ { id: 1, name: '新建文件夹1', type: 1, parentId: 0, children: [ {id: 3, name: '新建文件夹3', type: 1, parentId: 1}, { id: 4, name: '新建文件夹4', type: 2, parentId: 1, children: [ {id: 8, name: '新建文件夹8', type: 2, parentId: 4}, {id: 9, name: '新建文件夹9', type: 2, parentId: 4}, ] } ] }, { id: 2, name: '新建文件夹2', type: 1, parentId: 0, children: [ { id: 5, name: '新建文件夹5', type: 2, parentId: 2, children: [{id: 10, name: '新建文件夹10', type: 2, parentId: 5}] }, {id: 6, name: '新建文件夹6', type: 2, parentId: 2}, {id: 7, name: '新建文件夹7', type: 2, parentId: 2} ] } ] ``` 持续更新中ing... 待开发:滚动条美化、DateTimePicker 如有疑问,请提Issues。