过滤器
1.filter的作用就是接收一个输入,通过某个规则进行处理,然后返回处理后的结果,主要用于数据的格式化。
2.内置过滤器
(1)Currency(货币)
将一个数值格式化为货币格式,默认为$
(2)Date
(3)Filter子串匹配
用来处理一个数组,可以过滤出含有某个子串的元素,作为一个字数组来返回。通常用来过滤需要展示的元素。可以是字符串数字,对象或是一个用来从数组中选择元素的函数。
字符串:返回所有包含这个字符串的元素
对象:将待过滤对象的属性同这个对象中的同名属性进行对比,如果属性值是字符串就会判断是否包含该字符串。它接受一个参数,用来定义子串的匹配规则。若希望对全部属性都进行对比,可以将$作为键名。
函数:对每个元素都执行这个函数,返回非假值的元素会出现在新的数组中并返回。
示例:
$scope.func=function(e){return e.age>4;}
{{childrenArray|filter:'a'}} //匹配属性值中含有a的
{{childrenArray|filter:4}}
{{childrenArray|filter:{name:'i'}} //参数是对象,匹配name属性中含有i的
{{childrenArray|filter:func}} //参数是函数,指定返回age>4的
例:
<body ng-app="myapp">
<div ng-controller="ctrl01">
<h1>{{money | currency:'¥'}}</h1> //¥12,300.00
<h1>{{date|date:'yyyy年MM月dd日 HH:mm:ss'}}</h1> //2016年01月24日 13:11:03
<div ng-repeat="user in users |filter:'l'"> //这里相当于<div ng-repeat="user in (users |filter:'l')">,
对全文所有的属性进行过滤,看是否包含l,结果为lyy1-->123 lulu-->1234
{{user.name}}-->{{user.phone}}
</div>
</div>
</body>
angular.module("myapp",[])
.controller('ctrl01',function($scope){
$scope.money=12300;
$scope.date=new Date();
var users=[
{id:1,name:'lyy1',phone:'123'},
{id:2,name:'lulu',phone:'1234'},
{id:3,name:'hahaha',phone:'12345'},
];
$scope.users=users;
})
修改为:<input ng-model="condition" />
<div ng-repeat="user in users | filter:condition">
{{user.name}}-->{{user.phone}}
</div>
则可以根据输入的内容显示结果
若改为:<div ng-repeat="user in users |filter:{name:condition}">则在name属性中查找
(4)Json
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,如:
<script type="javascript">
var json={'name':'lyy','age':'18'};
alert(json.name);
alert(json['name']);
</script>
在AngularJS中这样表示:{{{'name':'lyy','city':'NJ'}|json}}
结果为:{ "name": "lyy", "city": "NJ" }
可以将一个JSON或者JS对象转换成字符串,对调试很有帮助
(5)limitTo(限制个数)
根据传入的参数决定生成的新数组或字符串的长度,参数的正负号控制是从前面还是后面截取。
<h1>{{"fjierghihug"|limitTo:3}}</h1> 结果:fji
{{['a','b','c','d','e']|limitTo:2}} 结果:["a","b"]
(6)Lowercase
(7)Uppercase
{{"fjierghihug"|uppercase}}
(8)Number
将数字格式化为文本,第二个参数用来控制小数点的位数
{{12343245|number}} // 12,343,245
{{12.343245|number:2}} //12.34
(9)orderBy(排序)
(10)自定义filter
<h1>{{money | myFilter:'¥'}}</h1>
.filter("myFilter",function(){
return function(value,param){
return value+""+param;
}
})
结果:12300¥
这里的value相当于money的数值,param相当于¥
3.表单验证
虽然WEB应用安全不能完全依赖客户端验证,但客户端验证可以提供表单状态的实时反馈。
如果想要屏蔽浏览器对表单的默认验证行为,可以在表单元素上添加novalidate标记
(1)必填项required
<input type="text" required ng-minlength="5" />
(2)最小长度ng-minlength
(3)最大长度ng-maxlength
(4)模式匹配ng-pattern
<input type="text" ng-pattern="[a-zA-Z]" />
(5)电子邮件 type="email"
(6)数字 type="number"
(7)URL <input type="url" name="homepage" ng-model="user.facebook_url" />
(8)在表单中控制变量
a.未修改的表单:判断用户是否修改了表单,未修改则为true,修改了就为false
formName.inputFieldName.$pristine
b.修改过的表单:只要修改了表单,不管是否通过验证,都为true
formName.inputFieldName.$dirty
c.合法的表单:formName.inputFieldName.$valid
d.不合法的表单:formName.inputFieldName.$invalid
e.错误:formName.inputFieldName.$error
(9)一些有用的CSS样式
AngularJS处理表单时,会根据表单当前的状态添加一些CSS样式
.ng-pristine{} .ng-dirty{} .ng-valid{} .ng-invalid{}

angularJS 过滤器 表单验证的更多相关文章

  1. 基于angularJS的表单验证练习

    今天看了一下angularJS的表单验证,看的有点云里雾里(也有可能是雾霾吸多了),于是做了一个小练习来巩固一下. html: <div ng-controller="Aaa" ...

  2. angularjs的表单验证

    angularjs内置了常用的表单验证指令,比如min,require等.下面是演示: <!DOCTYPE html> <html> <head> <meta ...

  3. 【AngularJs】---表单验证

    1. 必填项 验证某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可: <input type="text" required /> 2 ...

  4. AngularJS 的表单验证

    最近开始学习angularjs,学到表单验证的时候发现有必要学习下大神的好文章: 转:http://www.oschina.net/translate/angularjs-form-validatio ...

  5. AngularJS复习------表单验证

    在AngularJS中能够将HTML5表单验证功能同自己的验证指令结合起来使用,这里介绍使用的核心功能. 使用表单验证,首先要确保表单的每个控件都有name属性 如果想要屏蔽浏览器对表单的默认验证行为 ...

  6. AngularJs实现表单验证

    首先,我们应该知道,表单中,常用的验证操作有: $dirty 表单有填写记录 $valid 字段内容合法的 $invalid 字段内容是非法的 $pristine 表单没有填写记录 $error 表单 ...

  7. 夺命雷公狗—angularjs—3—表单验证的高级用法

    其实我们的angularjs都是是块状代码,其实是可以在实际开发中保存下来以后就可以达到重复利用的目的了.. 废话不多说,直接上代码: <!doctype html> <html l ...

  8. AngularJS form表单验证(非常全面)

    构建一个ng表单 novalidate=”novalidate” 2.form中不能有action属性.提交交由ng-submit处理 3.每个input一定要有ng-model,最好有一个name方 ...

  9. AngularJS的表单验证提交示例

    代码下载:https://files.cnblogs.com/files/xiandedanteng/angularjsFormSubmit.rar 前台代码: <%@ page content ...

随机推荐

  1. Business Intelligence (BI)

    BI, 全称Business Inteligence. 帮助企业更有效地利用数据,提供经营决策支持.让决策管理者随时随地获取关键信息,基于数字决策,最终提高决策水平. 包括范围(层次由低到高):数据报 ...

  2. SGU 117.Counting

    时间限制: 0.25 sec. 空间限制: 4096 KB 题目大意: 给你n,m,k(都小于10001),和 n 个数,求这n个数中有多少个数的m次幂能够整除k.(即 n i^m % k==0). ...

  3. amf0解释一下

    就简单记录一下省了以后忘了,amf0其实就几种数据格式的网络传输格式,比如数字,字符串,这些格式在传输的时候他给单独序列化了一下,主要支持以下这些: #define AMF0_NUMBER ((uin ...

  4. BIOS中断大全

    BIOS中断大全 BIOS中断:1.显示服务(Video Service——INT 10H)  00H —设置显示器模式0CH —写图形象素01H —设置光标形状0DH —读图形象素02H —设置光标 ...

  5. dedecms织梦二级菜单的实现方法

    首先,复制代码: 程序代码 {dede:channelartlist typeid='top' cacheid='channelsonlist'} {dede:channel type='son' n ...

  6. Android 中文 API (29) —— CompoundButton

    前言 本章内容是android.widget.CompoundButton,翻译来自德罗德,再次感谢德罗德 !期待你一起参与Android API 的中文翻译,联系我over140@gmail.com ...

  7. eclipse4.2 UI换回 3.6版本的UI

    Apparently, the Eclipse developers were kind enough to leave us an easy way out: From the Window men ...

  8. CodeChef FNCS

    题面:https://www.codechef.com/problems/FNCS 题解: 我们考虑对 n 个函数进行分块,设块的大小为S. 每个块内我们维护当前其所有函数值的和,以及数组中每个元素对 ...

  9. Oracle开始从Java运行时中移除JAR包

    早在2012年8月,在Java平台首席架构师Mark Reinhold宣布模块化项目Jigsaw之后不久,JEP 162这一题为“准备模块化”的提案就指出,在Jigsaw项目中为模块化系统开发的代码不 ...

  10. 【Java】Java垃圾回收机制

    Java垃圾回收机制 说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来.在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给 ...