npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

angularjs-directive-dy

v1.0.5

Published

angularjs指令库,基于angularjs 1.5+。

Downloads

9

Readme

angularjs-directive-dy

这是一个angularjs指令库,基于angularjs 1.5+。这个库提供了一些我们常用的组件,例如:

  • 更美观更强大的select下拉指令;

  • 简单便捷的step指令,只需要简单的几行代码,便可以实现复杂的视觉效果;

  • 美观的图片上传uploader指令,可以实现本地预览;

  • ...

预览地址:https://rilyzhang.github.io/angularjs-directive-dy

下面内容是详细文档。

目录

  1. 指令的引入
  2. dy-selector指令
  3. dy-step指令
  4. dy-tooltip指令
  5. dy-uploader指令
  6. dy-tree指令

指令的引入

使用npm引入指令:

Example:

npm i -S angularjs-directive-dy
import directiveDy from 'angularjs-directive-dy'

var app = angular.module('yourModuleName', [directiveDy]);

或者可以直接去dist文件夹中寻找编译好的js脚本。别忘了引入样式

dy-selector指令

dy-selector指令是一个模拟select下拉框的指令,但是它比select下拉框更加强大和美观。 当你的选项有很多时,它可以进行模糊匹配,让可选项变少。此外,它还支持字符串数组,对象数组。

Example:

<dy-selector ng-model="myData" dy-list="dataList"></dy-selector>

(注:传入的数组元素可以为string类型,也可以为object类型。如果传入object类型,则必须是{ dyKey : xxx, dyVal : xxx }格式)

使用就是这么简单,接下来我们看看属性详解:

ngModel: 这个大家都懂的,不做解释。

dyList: 传入一个数组,可以为string数组,也可以为object类型。

disabled: 只读模式,加上这个属性(无需赋值)后将无法操作下拉框。

zIndex: 当两个dy-selector上下布局的时候会出现层高问题,这个参数的值决定哪个层高优先。

mode: 当存在mode属性,并且值为simple时,可屏蔽匹配搜索框。

placeholder: 尚未选择列表时的提示文字。

objectHandle: 用于映射dyList对象的字段。当你的对象过于复杂时,你无需将对象转换为指定类型, 因为这个属性可以帮你做这些事情!

下面分别演示了传入字符串和传入数组:

Example:

// 传入String类型的数组
$scope.dyList = ['IOS', 'Android', 'windows phone', 'Symbian OS'];
// 传入Object类型的数组
$scope.dyList = [
    {dyKey: '苹果', dyVal: '001'},
    {dyKey: '三星', dyVal: '002'},
    {dyKey: '华为', dyVal: '003'},
    {dyKey: '小米', dyVal: '004'}
];

如果你的对象是这个样子的,你又懒得做转换,那么,你只需要做好字段映射,objectHandle属性可以帮你做这些工作:

Example:

$scope.dyList3 = [
    {brand: '苹果', encoding: '001'},
    {brand: '三星', encoding: '002'},
    {brand: '华为', encoding: '003'},
    {brand: '小米', encoding: '004'},
    {brand: '锤子', encoding: '005'}
];
<dy-selector
   ng-model="myData"
   dy-list="dyList3"
   placeholder="请选择"
   object-handle="{dyKey: 'brand', dyVal: 'encoding'}">
</dy-selector>

dy-step指令

这个指令是为了展示进度的指令,例如我们注册一个账号时,网页上会显示“第一步”、“第二步”、 “第三步”等小箭头。这个指令将其样式封装在内,以便于更简单的操作。

Example:

<script src="angularjs-directive-dy/directive/step/step.js"></script>
<link rel="stylesheet" href="angularjs-directive-dy/directive/step/step.css">
<dy-step step="0" step-list="['第一步','第二步','第三步']"></dy-step>
<script>
    angular.module('app', ['directive.step']);
</script>

属性详解:

step: 当前所在的步数。

stepList: 步数数组。

特别注意:此指令适用于白色背景的页面。如果页面背景是其它颜色,请在自己的样式文件中重写小箭头的颜色。

dy-tooltip指令

当我们鼠标挪到某个元素上,像提示用户的时候,通常会选中在该元素上加入title属性,但又苦于原生title属性的样式不太美观, 这时候dy-tooltip属性或许可以帮到你。

不多说,直接贴代码:

Example:

<div dy-tooltip data-tip="这里就是你想显示的提示文字">...</div>

dy-uploader 指令

这是一个封装的图片上传组件,ngModel中绑定的为file类型的数组,支持本地图片预览。

Example:

<dy-uploader
    ng-model="$ctrl.files"
    max-length="3"
    max-size="1024 * 1024 * 5"
    file-type="/.(jpe?g|gif|png|bmp)$/i"
    file-type-error="$ctrl.fileTypeError()"
    max-length-error="$ctrl.maxLengthError()"
    max-size-error="$ctrl.maxSizeError()"
    repeat-name-error="$ctrl.repeatNameError()"></dy-uploader>

属性详解:

ngModel: 用于绑定file类型的数组。

maxLength:上传最大数量(default: 20)。

maxSize:限制文件大小,单位为字节(default: 10M)。

fileType:文件类型,值为正则表达式字面量(default: /.(jpe?g|png|bmp|gif)$/i)。

fileTypeError: 当上传文件类型不匹配时调用此方法。

maxSizeError: 当上传文件超过限制大小是调用此方法。

maxLengthError: 当上传文件超过限制数量是调用此方法。

repeatNameError: 当上传重名是调用此方法。

dy-tree 指令

这个指令可以构造一个简单的目录树结构,目前仅支持单选,后续将补充其他功能。

Example:

<dy-tree tree-data="$ctrl.dataList" ng-model="$ctrl.treeVal"></dy-tree>

属性详解:

ngModel:用于绑定获取单选值。

treeData:用于构造树模型的数据。

treeData数据结构

treeData为一个对象数组。目前,这个属性的数据结构比较开放,只有name属性为必要的属性。若其中包含层级结构的子元素, 使用children将子元素包裹即可。children也是一个对象数组

Example:

$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...

如有疑问,请提Issues。