指令(directive)。json
指令能够用来建立自定义的标签。它们能够用来装饰元素或者操做DOM属性。能够做为标签、属性、注释和类名使用。数组
这里是一个例子,它监听一个事件而且针对的更新它的$scope ,以下:函数
而后,你可使用这个自定义的directive来使用:调试
<my-component ng-model="message"></my-component>component
使用一系列的组件来建立你本身的应用将会让你更方便的添加,删除和更新功能。对象
对于AngularJS的特性的介绍,接下来,介绍一下它的功能。主要讲一下ng的内置过滤器的一些内容。blog
1.currency (货币处理)排序
使用currency能够将数字格式化为货币,默认是美圆符号,你能够本身传入所需的符号,例如我传入人民币:事件
{{num | currency : '¥'}}ci
date(日期格式化)
原生的js对日期的格式化能力有限,ng提供的date过滤器基本能够知足通常的格式化要求。用法以下:
{{date | date : 'yyyy-MM-dd hh:mm:ss EEEE'}}
参数用来指定所要的格式,y M d h m s E 分别表示年月日时分秒星期,你能够自由组合它们。也可使用不一样的个数来限制格式化的位数。另外参数也可使用特定的描述性字符串,例如“shortTime”将会把时间格式为12:05 pm这样的。ng提供了八种描 述性的字符串,我的以为这些有点多余,我彻底能够根据本身的意愿组合出想要的格式,不肯意去记这么多单词~
filter(匹配子串)
这个名叫filter的filter。用来处理一个数组,而后能够过滤出含有某个子串的元素,做为一个子数组来返回。能够是字符串数组,也能够是对象数组。若是是对象数组,能够匹配属性的值。它接收一个参数,用来定义子串的匹配规则。下面举个例子说明一下参数的用法,我用如今特别火的几个孩子定义了一个数组:
$scope.childrenArray = [
{name:'kimi',age:3},
{name:'cindy',age:4},
{name:'anglar',age:4},
{name:'shitou',age:6},
{name:'tiantian',age:5}
];
$scope.func = function(e){return e.age>4;}{{ childrenArray | filter : 'a' }} //匹配属性值中含有a的
{{ childrenArray | filter : 4 }} //匹配属性值中含有4的
{{ childrenArray | filter : {name : 'i'} }} //参数是对象,匹配name属性中含有i的
{{childrenArray | filter : func }} //参数是函数,指定返回age>4的。
json(格式化json对象)
json过滤器能够把一个js对象格式化为json字符串,没有参数。这东西有什么用呢,我通常也不会在页面上输出一个json串啊,官网说它能够用来进行调试,嗯,是个不错的选择。或者,也能够用在js中使用,做用就和咱们熟悉的JSON.stringify()同样。用法超级简单:
{{ jsonTest | json}}。
5.limitTo(限制数组长度或字符串长度)
limitTo过滤器用来截取数组或字符串,接收一个参数用来指定截取的长度,若是参数是负值,则从数组尾部开始截取。我的以为这个filter有点鸡肋,首先只能从数组或字符串的开头/尾部进行截取,其次,js原生的函数就能够代替它了,看看怎么用吧:
{{ childrenArray | limitTo : 2 }} //将会显示数组中的前两项。
lowercase(小写)
把数据转化为所有小写。没有参数,只能把整个字符串变为小写,不能指定字母。
uppercase(大写)
同上。
number(格式化数字)
number过滤器能够为一个数字加上千位分割,像这样,123,456,789。同时接收一个参数,能够指定float类型保留几位小数:
{{ num | number : 2 }}。
orderBy(排序)
orderBy过滤器能够将一个数组中的元素进行排序,接收一个参数来指定排序规则,参数能够是一个字符串,表示以该属性名称进行排序。能够是一个函数,定义排序属性。还能够是一个数组,表示依次按数组中的属性值进行排序(若按第一项比较的值相等,再按第二项比较),仍是拿上面的孩子数组举例:
<div>{{ childrenArray | orderBy : 'age' }}</div> //按age属性值进行排序,如果-age,则倒序
<div>{{ childrenArray | orderBy : orderFunc }}</div> //按照函数的返回值进行排序
<div>{{ childrenArray | orderBy : ['age','name'] }}</div> //若是age相同,按照name进行排序
正如你所看到的,ng内置的过滤器也并非万能的,事实上好多都比较鸡肋。更个性化的需求就须要咱们来定义本身的过滤器了,下面来看看如何自定义过滤器。