过滤器
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. angularjs modal模态框----创建可拖动的指令

    //最近项目中需要将angular-ui-bootstrap中用到的弹出框,使之可拖动,由于源文件中没有实现,需要自己实现指令,以下即为该指令,亲测可以实现..directive('draggable ...

  2. 子树大小平衡树(Size Balanced Tree,SBT)操作模板及杂谈

    基础知识(包括但不限于:二叉查找树是啥,SBT又是啥反正又不能吃,平衡树怎么旋转,等等)在这里就不(lan)予(de)赘(duo)述(xie)了. 先贴代码(数组模拟): int seed; int ...

  3. 关于ASP.NET Session State Server

    最近公司开发的一个网站因为访问量增大,需要添加多台Web Server来进行负载均衡. 但是在做负载均衡前需要将一些原来固定存储在单台机器上的东西分离出来,使之能单独存在在一个独立的机器上,其中就有S ...

  4. spring配置中引入properties

    <context:property-placeholder location="classpath*:db.properties" />

  5. html5系列.基础知识

    兼容性问题 创建一个html5页面 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  6. Java高阶面试问题合集

    下面总结一下在Java面试中常用的一些问题,不具体解答,我只附上一些精彩的博文链接. Spring IOC AOP 底层原理 JAVA的反射机制和动态代理 Java反射机制和动态代理 多线程 Spri ...

  7. Ruby自学笔记(四)— 数组,Hash,正则表达式简介

    今天学习的是数组和Hash,数组在很多编程语言中都能常常用到. 数组: 数组是存储数据的一种容器,在Ruby中,数组中存储的数据可以是任何类型的数据:这和JAVA不同,在JAVA中,数组是存储同一类型 ...

  8. BZOJ 1823 满汉全席

    Description 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而 ...

  9. CH Round #49 - Streaming #4 (NOIP模拟赛Day2)

    A.二叉树的的根 题目:http://www.contesthunter.org/contest/CH%20Round%20%2349%20-%20Streaming%20%234%20(NOIP 模 ...

  10. linkedin和facebook的区别

    摘录一段百科(http://www.baike.com/wiki/LinkedIn)的文字: Linkedin - 特点 Linked是一个“高效”.“安全”并且“有商务价值”的“白领SNS提供商”: ...