Angular.Js中过滤器filter与自定义过滤器filter实例详解

本文主要给大家介绍了Angular.Js过滤器filter与自定义过滤器filter的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:

一、AngularJS的filter过滤器:

  • uppercase|lowercase:大小写转换过滤
  • json:json格式过滤
  • date:日期格式过滤
  • number:数字格式过滤
  • currency:货币格式过滤
  • filter:查找
  • limitTo:字符串对象截取
  • orderBy:对象排序
<!DOCTYPE html>
<html lang="zh_CN">
<head>
 <meta charset="UTF-8">
 <title>Angular基础</title>
</head>
<body>
<div ng-app="myApp"> 

  <!-- 向表达式添加过滤器:可以通过一个管道字符(|)和一个过滤器添加到表达式中-->
  <p>将字符串转换为大小写:</p>
  <div ng-controller="uppercaseController">
   <p>姓名为 {{ person.lastName | uppercase }}</p>
  </div>
  <div ng-controller="lowercaseController">
   <p>姓名为 {{ person.lastName | lowercase }}</p>
  </div> 

  <p>货币过滤:</p>
  <div ng-controller="costController">
   数量:<input type="number" ng-model="quantity">
   价格:<input type="number" ng-model="price">
   <p>总价 = {{ (quantity * price) | currency }}</p>
   {{250 |currency:"RMB ¥"}}
  </div> 

  <!-- 向指令添加过滤器:可以通过一个管道字符(|)和一个过滤器添加到指令中-->
  <p>按国家的字母顺序排序对象:</p>
  <div ng-controller="namesController">
   <p>循环对象:</p>
   <ul>
    <li ng-repeat="x in names | orderBy:'country'">
     {{ x.name + ', ' + x.country }}
    </li>
   </ul>
   <!--json格式过滤-->
   {{jsonText | json}}  <br/>
   <!--date格式过滤-->
   <span>{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss'}}</span><br/>
   <!--number格式过滤-->
   {{1.2345678 |number:1}}<br/>
   <!--字符串截取-->
   {{ "i love tank" | limitTo:6 }}<br/>
   {{ "i love tank" | limitTo:-6 }}<br/>
   <!--对象排序:降序-->
   {{ [{"age": 20,"id": 10,"name": "iphone"},
   {"age": 12,"id": 11,"name": "sunm xing"},
   {"age": 44,"id": 12,"name": "test abc"}
   ] | orderBy:'id':true }}<br/>
   <!--对象排序:升序-->
   {{ [{"age": 20,"id": 10,"name": "iphone"},
   {"age": 12,"id": 11,"name": "sunm xing"},
   {"age": 44,"id": 12,"name": "test abc"}
   ] | orderBy:'id' }}
  </div>
  <p>按输入的字母显示对象:</p>
  <div ng-controller="namesFilterController">
   <p>输入过滤:</p>
   <p><input type="text" ng-model="name"></p>
   <ul>
    <li ng-repeat="x in names | filter:name | orderBy:'country':true">
     {{ (x.name | uppercase) + ', ' + x.country }}
    </li>
   </ul>
   <p>name筛选:</p>
   <ul>
    <li ng-repeat="x in names | filter:{'name':name} | orderBy:'country':true">
     {{ (x.name | uppercase) + ', ' + x.country }}
    </li>
   </ul> 

   {{ [{"age": 20,"id": 10,"name": "iphone"},
   {"age": 12,"id": 11,"name": "sunm"},
   {"age": 44,"id": 12,"name": "test abc"}
   ] | filter:{'name':'sunm'} }}
  </div> 

</div>
<script src="angular.min.js"></script>
<script type="application/javascript">
 var myApp=angular.module('myApp',[]);
 myApp.controller('uppercaseController',function($scope){
  $scope.person = {
   firstName: "John",
   lastName: "Doe"
  };
 });
 myApp.controller('lowercaseController',function($scope){
  $scope.person = {
   firstName: "John",
   lastName: "Doe"
  };
 });
 myApp.controller('costController',function($scope){
  $scope.quantity = 1;
  $scope.price = 9.99;
 });
 myApp.controller('namesController',function($scope){
  $scope.names = [
   {name:'Jani',country:'Norway'},
   {name:'Hege',country:'Sweden'},
   {name:'Kai',country:'Denmark'}
  ];
  $scope.jsonText={foo:"bar",baz:23};
 });
 myApp.controller('namesFilterController',function($scope){
  $scope.names = [
   {name:'Jani',country:'Norway'},
   {name:'Hege',country:'Sweden'},
   {name:'Kai',country:'Denmark'}
  ];
 }); 

</script>
</body>
</html> 

二、AngularJs的控制器使用filter

<!DOCTYPE html>
<html lang="zh_CN">
<head>
 <meta charset="UTF-8">
 <title>Angular基础</title>
</head>
<body>
<div ng-app="myApp">
 <div ng-controller="firstCtrl">
  {{uFirstName}}<br/>
  {{cPrice}}<br/>
 </div> 

</div>
<script src="angular.min.js"></script>
<script type="application/javascript">
 var myApp=angular.module('myApp',[]);
 myApp.controller('firstCtrl',function($scope,$filter){
  $scope.firstName="zhangsan";
  $scope.uFirstName=$filter('uppercase')($scope.firstName);
  $scope.price="121212";
  $scope.cPrice=$filter('currency')($scope.price,'RMB ¥');
 }) 

</script>
</body>
</html> 

三、AngularJs自定义filter过滤器

<!DOCTYPE html>
<html lang="zh_CN">
<head>
 <meta charset="UTF-8">
 <title>Angular基础</title>
</head>
<body>
<div ng-app="myApp">
 <div ng-controller="firstCtrl">
  {{welcome | replaceHello}}<br/>
  {{welcome | replaceHello:3:5}}<br/>
  {{welcome | rJs}}<br/>
 </div> 

</div>
<script src="angular.min.js"></script>
<script src="filter.js"></script>
<script type="application/javascript">
 var myApp=angular.module('myApp',['myApp.filter']);
 myApp.controller('firstCtrl',function($scope){
  $scope.welcome="Hello AngularJs";
 });
 //自定义过滤器
 myApp.filter('replaceHello',function(){
  return function(input,n1,n2){
   console.log(input);
   console.log(n1);
   console.log(n2);
   return input.replace(/Hello/,'您好');
  }
 }) 

</script>
</body>
</html> 
var appFilter=angular.module('myApp.filter',[]);
//自定义过滤器
appFilter.filter('rJs',function(){
 return function(input,n1,n2){
  console.log(input);
  console.log(n1);
  console.log(n2);
  return input.replace(/Js/,' javaScript');
 }
}); 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • 详解Angular的内置过滤器和自定义过滤器【推荐】

    在实际的开发过程中,很多後端返回给我们的数据都是需要格式化处理的,在angular中为我们内置提供了filter指令,可以很方便的对数据进行处理.首先我们看看在视图中是如何使用过滤器的. 1.currency(货币)格式化 <div ng-controller="Aaa"> <p>{{name | currency:'¥'}}</p> </div> <script type="text/javascript"&g

  • 详解AngularJS中$filter过滤器使用(自定义过滤器)

    1.内置过滤器 * $filter 过滤器,是angularJs中用来处理数据以更好的方式展示给我用户.比如格式化日期,转换大小写等等. * 过滤器即有内置过滤器也支持自定义过滤器.内置过滤器很多,可以百度.关键是如何使用: * 1.在HTML中直接使用内置过滤器 * 2.在js代码中使用内置过滤器 * 3.自定义过滤器 * * (1)常用内置过滤器 * number 数字过滤器,可以设置保留数字小数点后几位等 * date 时间格式化过滤器,可自己设置时间格式 * filter 过滤的数据一般

  • 详解AngularJS中自定义过滤器

    过滤器(filter)正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回处理后的结果.主要用在数据的格式化上,例如获取一个数组中的子集,对数组中的元素进行排序等.ng内置了一些过滤器,它们是:currency(货币).date(日期).filter(子串匹配).json(格式化json对象).limitTo(限制个数).lowercase(小写).uppercase(大写).number(数字).orderBy(排序).总共九种.除此之外还可以自定义过滤器,这个就强大了,可以满足任何

  • AngularJS 自定义过滤器详解及实例代码

    AngularJS另一个特点就是提供了过滤器,可以通过操作UNIX下管道的方式,操作数据结果. 通过使用管道,可以便于双向的数据绑定中视图的展现. 过滤器在处理过程中,将数据变成新的格式,而且可以使用管道这种链式风格,还能接受附加的参数. 实现方式 下面看一下如何定义声明一个过滤器,首先依然是要创建我们自己的模块myAppModule var myAppModule=agular.module("myApp",[]); 接下来在模块的基础上,创建过滤器: myAppModule.fil

  • AngularJS中过滤器的使用与自定义实例代码

    前言 相信大家都知道过滤器的使用:一种是在html中的使用,一种是在js代码中的使用,下面我们来通过实例深入了解. 实例代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>过滤器</title> <script src="day2/src/angular.js"></script> <styl

  • Angularjs 依赖压缩及自定义过滤器写法

    具体代码如下所示: <!DOCTYPE html> <html> <body> <header> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="angular.min.js"></script> <script src="filt

  • 简述angular自定义过滤器在页面和控制器中的使用

    AngularJS另一个特点就是提供了过滤器,可以通过操作UNIX下管道的方式,操作数据结果. 通过使用管道,可以便于双向的数据绑定中视图的展现. 过滤器在处理过程中,将数据变成新的格式,而且可以使用管道这种链式风格,还能接受附加的参数. 首先设置自定义过滤器. 定义模块名:angular .module('myApp') .filter('filterName',function(){ return function(要过滤的对象,参数1,参数2,...){ return Obj; //这里返

  • 使用AngularJS创建自定义的过滤器的方法

    Angularjs过滤器是 angularjs非常棒的特性之一.有朝一日,你可能需要使用自定义过滤器,幸运的是,你找到了这篇博文. 下面显示的是自定义过滤器长什么样子(请注意myfilter): 我们的自定义过滤器叫做 "myfilter", 它有由 ':'隔开的4个参数. 这是一个将会用到的样本输入: $scope.friends = [{name:'John', phone:'555-1276'}, {name:'Annie', phone:'800-BIG-MARY'}, {na

  • JS中获取 DOM 元素的绝对位置实例详解

    在操作页面滚动和动画时经常会获取 DOM 元素的绝对位置,例如 本文 左侧的悬浮导航,当页面滚动到它以前会正常地渲染到文档流中,当页面滚动超过了它的位置,就会始终悬浮在左侧. 本文会详述各种获取 DOM 元素绝对位置 的方法以及对应的兼容性.关于如何获取 DOM 元素高度和滚动高度,请参考视口的宽高与滚动高度 一文. 概述 这些是本文涉及的 API 对应的文档和标准,供查阅: API 用途 文档 标准 offsetTop 相对定位容器的位置 MDN CSSOM View Module clien

  • node.js中fs文件系统模块的使用方法实例详解

    本文实例讲述了node.js中fs文件系统模块的使用方法.分享给大家供大家参考,具体如下: node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作. fs模块中,所有的方法分为同步和异步两种实现. 有 sync 后缀的方法为同步方法,没有 sync 后缀的方法为异步方法. 一.文件的整个读取 const fs = require('fs'); //参数一表示读取的文件 //参数二表示读取的配置,{encoding:'null', flag:'r'} //encod

  • JS中的Replace()传入函数时的用法详解

    replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串.. 废话不多说了,直接给大家贴代码了,具体代码如下所示: <script> var str = "a1ba2b"; var reg = /a.b/g; str = str.replace(reg,func

  • java 中自定义OutputFormat的实例详解

    java 中 自定义OutputFormat的实例详解 实例代码: package com.ccse.hadoop.outputformat; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apa

  • Node.js 中的 fs 模块与Path模块方法详解

    概述: 文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集.可以通过调用 require("fs") 来获取该模块.文件系统模块中的所有方法均有异步和同步版本. 文件系统模块中的异步方法需要一个完成时的回调函数作为最后一个传入形参. 回调函数的构成由调用的异步方法所决定,通常情况下回调函数的第一个形参为返回的错误信息. 如果异步操作执行正确并返回,该错误形参则为null或者undefined.如果使用的是同步版本的操作方法,一旦出现错误,会以通常的抛出错误的形式返回

  • vue自定义指令directive实例详解

    下面给大家介绍vue自定义指令directive,具体内容如下所示: 官网截图实例 vue除了一些核心的内部定义的指令(v-model,v-if,v-for,v-show)外,vue也允许用户注册自己的一些功能性的指令,有时候你实在是要对Dom操作,这个时候是自定义指令最合适的了. 来直接看例子:当页面加载时使得元素获得焦点(autofocus 在移动版 Safari 是不支持的),就是当页面加载好了,不做任何的操作使得表单自动获得焦点,光标自动在某个表单上代码如下: Vue.directive

  • Vue自定义指令v-focus实例详解

    目录 前言 自定义指令 directive 项目实际使用 技术背景 实际操作 优势 setTimeout(fn, 0) 永远的神 $nextTick(callback) 小结 前言 本文直接参考vue2.0官方文档, 并演示博主项目中的使用 自定义指令 directive 除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令.注意,在 Vue2.0 中,代码复用和抽象的主要形式是组件.然而,有的情况下,你仍然需要对普通 DOM 元素进行底层操作,这时候就

  • IOS 开发之PickerView自定义视图的实例详解

    IOS 开发之PickerView自定义视图的实例详解 例如选择国家,左边是名称右边是国家,不应该使用两列,而是自定义PickerView的一列,可以通过xib来实现. 注意,虽然PickerView也是一列,但是数据源方法是@required,所以必须实现. 因此,核心思想就是一列,自定义PickerView的行视图. 使用viewForRow方法可以设定行视图. 这样的视图可以通过xib和它的控制器进行封装: Xib的控制器继承自UIView类即可. 控制器维护一个用于设置数据的模型对象fl

  • java 自定义注解的实例详解

    java  自定义注解的实例详解 Java的Annotation是在5.0版本之后引入的,可以用于创建文档,跟踪代码中的依赖性,并且可以执行编译时期检查.注解就是给虚拟机看的,代表程序的一些特殊的功能.JDK中提供了@Override,@SuppressWarning,@Deprecated三种注解,当让还有元注解,@Target,@Retention,@Documented,@Inherited,元注解的作用负责注解其它注解. 要想了解注解,就要了解自定义注解,了解是通过反射来实现的. 首先,

  • Android 中倒计时验证两种常用方式实例详解

    Android 中倒计时验证两种常用方式实例详解 短信验证码功能,这里总结了两种常用的方式,可以直接拿来使用.看图: 说明:这里的及时从10开始,是为了演示的时间不要等太长而修改的. 1.第一种方式:Timer /** * Description:自定义Timer * <p> * Created by Mjj on 2016/12/4. */ public class TimeCount extends CountDownTimer { private Button button; //参数依

随机推荐