angular JS 过滤器

过滤器:

过滤器用来格式化需要展示给用户的数据。 AngularJS有很多实用的内置过滤器,也可以自己创建过滤器。

可以使用过滤器:  前面是数据, 后面是格式
          {{ name | uppercase }}

可以通过$filter来调用过滤器,

app.controller(‘DemoController‘, [‘$scope‘, ‘$filter‘,function($scope, $filter) {
        $scope.name = $filter(‘lowercase‘)(‘Ari‘);    //使用小写过滤器,将 Ari  转换成  ari
}]);
数值过滤器可以限制小数点后的位数,
{{ 123.456789 | number:2 }}        //显示: 123.46
可以用|符号作为分割符来同时使用多个过滤器, 

AngularJS提供的内置过滤器:
currecy过滤器可以将一个数值格式化为货币格式。
{{ 123 | currency }}        //显示: $123.00
date过滤器可以将日期格式化成需要的格式:
{{ today | date:‘mediumTime‘ }}        // 12:09:02 PM
{{ today | date:‘shortTime‘ }}         // 12:09 PM
? 年份格式化
四位年份: {{ today | date:‘yyyy‘ }}     //2013
两位年份: {{ today | date:‘yy‘ }}         // 13
一位年份: {{ today | date:‘y‘ }}         // 2013
? 月份格式化
英文月份: {{ today | date:‘MMMM‘ }}     // August
英文月份简写: {{ today | date:‘MMM‘ }}     // Aug
数字月份: {{ today |date:‘MM‘ }}             // 08
一年中的第几个月份: {{ today |date:‘M‘ }}     // 8
? 日期格式化
数字日期: {{ today|date:‘dd‘ }}             // 09
一个月中的第几天: {{ today | date:‘d‘ }}     // 9
英文星期: {{ today | date:‘EEEE‘ }}         // Thursday
英文星期简写: {{ today | date:‘EEE‘ }}     // Thu
? 小时格式化
24小时制数字小时: {{today|date:‘HH‘}}         //00
一天中的第几个小时: {{today|date:‘H‘}}     //0
12小时制数字小时: {{today|date:‘hh‘}}         //12
上午或下午的第几个小时: {{today|date:‘h‘}}     //12
? 分钟格式化
数字分钟数: {{ today | date:‘mm‘ }}         // 09
一个小时中的第几分钟: {{ today | date:‘m‘ }}     // 9
? 秒数格式化
数字秒数: {{ today | date:‘ss‘ }}         // 02
一分钟内的第几秒: {{ today | date:‘s‘ }} // 2
毫秒数: {{ today | date:‘.sss‘ }}         // .995
? 字符格式化
上下午标识: {{ today | date:‘a‘ }}     // AM
四位时区标识: {{ today | date:‘Z‘ }}     // 0700
下面是一些自定义日期格式的示例:
{{ today | date:‘MMMd, y‘ }}             // Aug9, 2013
{{ today | date:‘EEEE, d, M‘ }}         // Thursday, 9, 8
{{ today | date:‘hh:mm:ss.sss‘ }}         // 12:09:02.995 

filter过滤器可以从给定数组中选择一个子集,并将其生成一个新数组返回

过滤器的第一个参数可以是字符串、对象或是一个用来从数组中选择元素的函数。
下面分情况介绍传入不同类型的参数。
? 字符串    返回所有包含这个字符串的元素。  如果我们想返回不包含该字符串的元素,在参数前加!符号。
{{ [‘Ari‘,‘Lerner‘,‘Likes‘,‘To‘,‘Eat‘,‘Pizza‘] | filter:‘e‘ }} // ["Lerner","Likes","Eat"] 
? 对象  待过滤对象的属性同这个对象中的同名属性进行比较,如果属性值是字符串就会判断是否包含该字符串。如果我们希望对全部属性都进行对比,可以将$当作键名。
{{ [{ ‘name‘: ‘Ari‘, ‘City‘: ‘San Francisco‘, ‘favorite food‘: ‘Pizza‘ },  { ‘name‘: ‘Nate‘, ‘City‘: ‘San Francisco‘, ‘favorite food‘: ‘indian food‘ }] | filter:{‘favorite food‘: ‘Pizza‘} }} // [{"name":"Ari","City":"SanFrancisco","favoritefood":"Pizza"}] 
? 函数 对每个元素都执行这个函数,返回非假值的元素会出现在新的数组中并返会。 

 {{ [‘Ari‘,‘likes‘,‘to‘,‘travel‘] | filter:isCapitalized }} // ["Ari"]    $scope.isCapitalized = function(str) { return str[0] == str[0].toUpperCase(); };

 将下面的对象数组用name字段进行排序: {{ [{ ‘name‘: ‘Ari‘, ‘status‘: ‘awake‘ },  { ‘name‘: ‘Q‘, ‘status‘: ‘sleeping‘ },  { ‘name‘: ‘Nate‘, ‘status‘: ‘awake‘ }] | orderBy:‘name‘ }}   

<!-- [ {"name":"Ari","status":"awake"}, {"name":"Nate","status":"awake"}, {"name":"Q","status":"sleeping"} ] --> 

也可以对排序结果进行反转。例如,通过将第二个参数设置为true可以将排序结果进行反转: 

{{ [{ ‘name‘: ‘Ari‘, ‘status‘: ‘awake‘ },  { ‘name‘: ‘Q‘, ‘status‘: ‘sleeping‘ },  { ‘name‘: ‘Nate‘,‘status‘: ‘awake‘ }] | orderBy:‘name‘:true }} 

<!-- [ {"name":"Q","status":"sleeping"}, {"name":"Nate","status":"awake"}, {"name":"Ari","status":"awake"} ] -->

自定义过滤器:

将字符串的第一个字母转为大写:

angular.module(‘app‘, [])
        .filter(‘capitalize‘, function() {
            return function(input) {
                // input是我们传入的字符串
                if (input) {
                    return input[0].toUpperCase() + input.slice(1);
                }
            }
        });

如果想将一个句子的首字母转换成大写形式,可以用过滤器先将整个句子都转换成小写,再把首字母转换成大写:
{{ ‘ginger loves dog treats‘ | lowercase | capitalize }}

时间: 2024-08-04 21:16:58

angular JS 过滤器的相关文章

Angular js 过滤器 笔记(转自菜鸟教程)

1.uppercase,lowercase 大小写转换 {{ "lower cap string" | uppercase }} // 结果:LOWER CAP STRING {{ "TANK is GOOD" | lowercase }} // 结果:tank is good 2.date 格式化 {{1490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} // 2017-03-22 13:52:25 3.nu

Angular JS + Express JS入门搭建网站

3月份开始,接到了新的任务,跟UI开发有关,用的是Angular JS,Express JS等技术.于是周末顺便学习下新技术. 组里产品UI架构如下: 其中前端,主要使用Angular JS框架,另外配合Bootstrap提供的很多控件以及JQuery,后台主要是Express JS搭建的Web Server,Express JS配合Nginx使用非常方便. 由此在项目不忙的时候,自己于是有时间和兴趣学习一下Angular JS与Express JS. 同时自己实现了一个最简单的Angular

Angular JS 学习笔记

特定领域语言 编译器:遍历DOM来查找和它相关的属性, 分为编译和链接两个阶段, 指令:当关联的HTML结构进入编译阶段时应该执行的操作,可以写在名称里,属性里,css类名里:本质上是函数 稳定的DOM:绑定了数据模型的DOM元素的实例不会在绑定的生命周期发生改变 作用域:用来检测模型的改变和为表达式提供执行上下文的 AngularJS 和其它模板系统不同,它使用的是DOM而不是字符串 指令: 由某个属性.元素名称.css类名出现而导致的行为,或者说是DOM的变化 Filter过滤器:扮演着数据

angular js使用记录

jquery本身并不是框架,而仅仅是一个操作dom的工具,它的核心是操作dom; 目前较火的前端框架:backbone.angularjs.react.avalon.vue; angularjs是由google开发的框架并进行维护,特别针对SPA(单页面)应用开发的框架,但不支持按需加载; MV*; mvvm框架 达到视图与逻辑(模块)同时绑定,同时更新: 1.ng-app——指令,使文档具有angularjs的能力(视图与逻辑混合); angular的核心就是视图与逻辑的同时绑定.同时更新;

Angular js 学习总结

下面是关于Angular js 实现动态加载表格,根据输入框内容·搜索的例子 <script> var mainApp = angular.module("mainApp",[]); mainApp.controller("MyController",function($scope){ $scope.childrenArry=[ {name:"alice",age:20}, {name:"柳林",age:20},

angular.js——小小记事本3

app.js部分,首先是路由.这个之前讲过了,链接在这里—— http://www.cnblogs.com/thestudy/p/5661556.html 1 var app = angular.module("myTodo", ['ngRoute']); 2 //路由的配置: 3 app.config(function($routeProvider) { 4 //我们在实现I want you项目,自己实现了一个路由, 5 //在这里angular.js帮我们实现了一个路由 6 7

学习angular.js的一些笔记想法(上)

1.data-ng-app与ng-app的区别 data-ng-app是为了h5不报错 2.ng-class 不多说就来拿例子说吧 html代码 <div class='color-changer' data-ng-class="{'color-changer-hiden':!colorChanger}"> </div> js代码: $scope.colorChanger=false; 此时的变量colorChanger=false,那么!colorChange

angular js的一些操作

angular使开发应用变得简单,降低构建复杂应用难度!但是它依赖注入!anjular不操作dom节点而是一个作用域 要操作作用域 就要先绑定,如何绑定一个作用域呢? 首先在页面引入 <script src="anjular.js">文件! <html ng-app></html>意思就是把整个html页面当做作用域! 绑定作用域是“ng-app” 绑定好作用域就可以对作用域内的绑定表达式进行数据绑定 <body> hello{{“wor

Atitit.angular.js 使用最佳实践 原理与常见问题解决与列表显示案例 attilax总结

Atitit.angular.js 使用最佳实践 原理与常见问题解决与列表显示案例 attilax总结 1. 本文范围 1 2. Angular的优点 1 2.1. 双向数据绑定 1 2.2. dsl化 2 2.3. 依赖注入 2 2.4. 指令 2 3. 手动绑定数据spa方式以及与ajax 与dwr的集成 2 4. 格式化数据 2 4.1. 多字段组合格式化 3 4.2. 输出html 4 5. 输出作为函数参数调用 4 6. 加载完成事件 5 7. 常见错误 5 7.1. Atitit.a