博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJS中自定义过滤器
阅读量:5943 次
发布时间:2019-06-19

本文共 2851 字,大约阅读时间需要 9 分钟。

 

AngularJS中为我们提供了一些内置的过滤器,这里列举一些自定义过滤器的场景。

自定义过滤器,不带参赛

//过滤 不带参赛app.filter('ordinal', function () {    return function (number) {        if (isNaN(number) || number < 1) {            return number;        } else {            var lastDigit = number % 10;            if (lastDigit === 1) {                return number + 'st'            } else if (lastDigit === 2) {                return number + 'nd'            } else if (lastDigit === 3) {                return number + 'rd'            } else if (lastDigit > 3) {                return number + 'th'            }        }    }});

 

大致这样使用:

{
{777 | ordinal}}

过滤 带参赛

把某个位置上的字母转换成大写。

 

 

//过滤 带参赛app.filter('capitalize', function () {    //input 需要过滤的元素    //char位置,索引减一    return function (input, char) {        if (isNaN(input)) {            //如果序号位置没有设置,索引位置默认是0            var char = char - 1 || 0;            //把过滤元素索引位置上的字母转换成大写            var letter = input.charAt(char).toUpperCase();            var out = [];            for (var i = 0; i < input.length; i++) {                if (i == char) {                    out.push(letter);                } else {                    out.push(input[i]);                }            }            return out.join('');        } else {            return input;        }    }});

 

 大致这样使用:

{
{'seven' | capitalize:3}}

过滤集合

过滤出集合中满足某种条件的元素。

var app = angular.module('filters', []);app.controller('demo', function ($scope) {    $scope.languages = [        {name: 'C#', type: 'static'},        {name: 'PHP', type: 'dynamic'},        {name: 'Go', type: 'static'},        {name: 'JavaScript', type: 'dynamic'},        {name: 'Rust', type: 'static'}    ];});//过滤集合app.filter('staticLanguage', function () {    return function (input) {        var out = [];        angular.forEach(input, function (language) {            if (language.type === 'static') {                out.push(language);            }        });        return out;    }});

 

大致这样使用:

<li ng-repeat="lang in languages | staticLanguage">{
{lang.name}}</li>

过滤,带多个参数,做多件事

定义数字的显示单位和显示位置。

 

var app = angular.module('filters', []);app.controller('demo', function ($scope) {    $scope.digit = 29.88;});//过滤 做多件事 多个参赛app.filter('customCurrency', function () {    return function (input, symbol, place) {        if (isNaN(input)) {            return input;        } else {            //检查symbol是否有实参            var symbol = symbol || '¥';            var place = place === undefined ? true : place;            if(place===true){                return symbol+input;            }else{                return input + symbol;            }        }    }});

 

大致这样使用:

 

Original:

  • {
    {digit}}

Custom Currency Filter

  • {
    {digit | customCurrency}} --Default
  • {
    {digit | customCurrency:'元'}} --custom symbol
  • {
    {digit | customCurrency:'元':false}} -- custom symbol and custom location

 

转载地址:http://ipwxx.baihongyu.com/

你可能感兴趣的文章
快递查询接口的调用与解析案例
查看>>
我的友情链接
查看>>
服务器性能优化配置建议
查看>>
oracle sql语句实现累加、累减、累乘、累除
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
接口由40秒到200ms优化记录
查看>>
java 视频播放 多人及时弹幕技术 代码生成器 websocket springmvc mybatis SSM
查看>>
Activiti6.0,spring5,SSM,工作流引擎,OA
查看>>
第十三章:SpringCloud Config Client的配置
查看>>
使用 GPUImage 实现一个简单相机
查看>>
CoinWhiteBook:区块链在慈善事业中的应用
查看>>
Mac上基于Github搭建Hexo博客
查看>>
阿里云服务器ECS开放8080端口
查看>>
Spring中实现监听的方法
查看>>
使用Tooltip会出现一个问题,如果行上出现复选框
查看>>
11.03T1 DP
查看>>
P2924 [USACO08DEC]大栅栏Largest Fence
查看>>
jQuery操作table tr td
查看>>
工作总结:MFC自写排序算法(升序)
查看>>
螺旋队列问题之二
查看>>