这里是修真院前端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析前端知识/技能,本篇分享的是:

【简述angular中constant和$filter的用法】

【JS-7】简述angular中constant和$filter的用法

大家好,我是IT修真院深圳分院第12期的学员韩鹏,一枚正直纯洁善良的前端程序员,今天给大家分享一下,修真院官网JS任务7,深度思考中的知识点——简述angular中constant和$filter的用法.

1.背景介绍

constant:

constant是用来设置常量的,constant(name,value)可以将一个已经存在的变量值注册为服务,通过依赖注入将其注入到应用的其他部分中,其中,name为注册的常量的名字,value为注册的常量的值或对象。</p>

$filter:

$filter是AngularJs 服务,$filter是过滤器,用来格式化数据用的。

2.知识剖析

AngularJs设置全局变量的方法:

angularjs自身有两种,设置全局变量的方法,在加上js的设置全局变量的方法,总共有三种。要实现的功能是,在ng-app中定义的全局变量,在不同的ng-controller里都可以使用。

1.通过var 直接定义global variable,这跟纯js是一样的。

2.用angularjs value来设置全局变量 。

3.用angularjs constant来设置全局变量 。

VALUE 和 CONSTANT 的区别:

1.value不可以在config里注入,但是constant可以。

2.value可以修改,但是constant不可以修改,一般直接用constant配置一些需要经常使用的数据。

过滤器:$FILTER

ng内置了9种过滤器,分别是:currency(货币)、date(日期)、filter(子串匹配)、json(格式化json对象)、limitTo(限制个数)、lowercase(小写)、uppercase(大写)、number(数字)、orderBy(排序)。

FILTER的用法:

filter是用来格式化数据用的

基本原型

{{expression | filter}}

多个filter连用版

{{expression | filter1 | filter2}}

传入参数版

{{expression | filter:1:2}}

3.常见问题

FILTER的实际应用:

自定义filter

4.解决方案

自定义一个过滤器也相当容易,仅仅需要在module中注册一个新的filter工厂函数。工厂函数会返回一个新的过滤器函数,过滤器的输入作为过滤器函数的第一个参数,其他过滤器的参数作为过滤器函数的附加参数传入。

过滤器函数是一个纯函数,这意味着给出相同的输入参数总能得到相同的输出结果,而不受外界状态的影响(例如,angularjs的services)。根据这一点,angularjs才能做到仅仅当输入变化时才去执行一次过滤器。

FILTER方法:

自定义过滤器:{{带过滤数据 |过滤器名:参数1:参数2:参数3.....}}

app.filter('过滤器名', function () {

return function (待过滤数据, 参数....) {

......

return  已过滤数据;

}

5.代码实战

Demo

6.拓展思考

有没有其他自定义过滤方法?

在CONTROLLER方法内定义一个方法:

控制器:(控制器名,控制器函数{

......

自定义过滤函数{

return function (待过滤数据, 参数....) {

......

return  已过滤数据;

}

})

7.参考文献

参考一:angularJS constant和value

参考二:angularJS 自定义过滤器

参考三:AngularJS 过滤器——Runoob

参考四:AngularJS 的那些内置九种过滤器

8.更多讨论

Q1:日期格式化的方法还有哪几种?

A1:

{{ now | date:'medium' }}<!-- Dec 3, 2016 10:43:51 AM -->

{{ now | date:'short' }}<!-- 12/3/16 10:43 AM -->

{{ now | date:'fullDate' }}<!-- Saturday, December 3, 2016 -->

{{ now | date:'longDate' }}<!-- December 3, 2016 -->

{{ now | date:'mediumDate' }}<!-- Dec 3, 2016 -->

{{ now | date:'shortDate' }}<!-- 12/3/16 -->

{{ now | date:'mediumTime' }}<!-- 10:43:51 AM -->

{{ now | date:'shortTime' }}<!-- 10:43 AM -->

Q2:constant在依赖注入中起什么作用?

A2:

constant是个常量,是用来在配置阶段传递数值,注意这个常量在配置阶段是不可用的。

Q3:orderBy 是干嘛的

A3:

AngularJS中orderBy进行排序,参数可以有三种类型,分别为:function,string,array:

第一种:function,如果是function,那么function函数会遍历待排序的数组,并将返回的结果作为angular库函数中comparator的参数,进行比较排序。

第二:如果是字符串,假如待排序的数组为对象,那么将会按照待排序数组中的每个对象的对应属性值,进行排序。如果字符串前边加有“+”,“-”符号,那么+表示升序排序,-表示降序排序。如果字符串为空,那么将按照元素自身进行排序。

第三种:如果是array,那么是第二种情况的一种多属性排序方式 。比如参数为[a,b],那么将先按照a属性值进行排序,如果a属性值相同,那么将按照b属性值进行排序。

简述angular中constant和$filter的用法相关推荐

  1. angular中常见的管道及用法

    原文链接:https://www.longkui.site/program/frontend/angular-pipe/5147/ 上一篇文章中,简单介绍了angular中自定义管道的使用: angu ...

  2. SQLAlchemy中filter_by()和filter()的用法不同

    filter_by() 和 filter() 的最主要的区别: 模块 语法 ><(大于和小于)查询 and_和or_查询 filter_by() 直接用属性名,比较用= 不支持 不支持 f ...

  3. angular中forRootforChild的作用

    angular中forRoot&forChild的作用 用法 import { NgModule, ModuleWithProviders } from '@angular/core'; im ...

  4. ngzorro html源码,Angular 中 ngTemplateOutlet 的用法以及ng-zorro源码分析!

    一.引言 今天看到文章:https://segmentfault.com/a/1190000015944548 .于是专门研究一下ngTemplateOutlet用法!!!! 官方定义 : NgTem ...

  5. matlab的filter函数,filter函数用法 matlab中filter函数的用法

    matlab中filter函数的用法如果你深爱的人此刻在你身边陪你,你怎么会有时间来看这些文字呢 离散系统的差分方程为 2y[k]-y[-1]-3y[k-2]=2x[k]-x[k-1] x[k]=(0 ...

  6. 简述JS中 appy 和 call 的详细用法

    Apply 和 Call 两个老生常言的方法,使用过程的一些细节还是有很大的异同,具体使用情况可以参照下面例子详细回顾一下. 区别和详解:js中call()和apply()的用法 1.关于call() ...

  7. 【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例

    [摘要] Rxjs在angular中的基本应用 本文是[Rxjs 响应式编程-第四章 构建完整的Web应用程序]这篇文章的学习笔记. 示例代码托管在:http://www.github.com/das ...

  8. 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程...

    简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.IO ...

  9. angular中如何创建出需要的service

    扯淡的话----------作为一个老魔兽玩家,我很喜欢将写代码和玩游戏进行对比,在使用不同的框架时,就好像我们在切换天赋技能,拿盗贼来说,敏锐天赋有个技能叫暗影之舞(好久没玩,不知道还在不),开了之 ...

最新文章

  1. Android app 启动页尺寸大小 忘记了怎么办
  2. 用于自动驾驶的实时车道线检测和智能告警
  3. joyui版本和android版本,JOYUI 11内测版正式推送,黑鲨游戏手机体验大幅升级
  4. 35岁危机可能是真的!调查显示在领英上年龄越大越难找工作,得贴年轻头像才行...
  5. 常考数据结构与算法:最长公共子串
  6. Android获取网速的方法
  7. VTK:InfoVis之PKMeansClustering
  8. QT--foreach的用法
  9. 多亏了这篇文章,我的开发效率远远领先于我的同事
  10. python做系统查人的信息_Python综合项目之员工信息查询
  11. LIST函数JAVA特点_Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和性能分析)...
  12. 转载在linux下执行java窗口被锁定问题
  13. python实现一个简单的tftp客户端
  14. HTTP利用API接口,解密生意参谋
  15. uclinux和linux的使用区别,基于uClinux和Linux的对比分析
  16. python 声音基频f0_ASR中常用的语音特征之FBank和MFCC(原理 + Python实现)
  17. 一、Java语言简介
  18. 悲观锁、乐观锁、间隙锁、死锁、自旋锁等
  19. 魔改车钥匙实现远程控车:(1)整体思路及控制方案实现
  20. 虹膜识别论文5:DeepIrisNet2 2019年 学习心得

热门文章

  1. linux怎么取消挂在u盘,linux下如何挂载U盘
  2. linux 采集cpu 内存,Linux环境获取(cpu、内存、网卡流量等)系统性能数据
  3. 20220211-CTF CRYPTO-base64-凯撒密码-摩丝密码--非常简单的三道题
  4. 广东工业大学专项设计_2020年广东工业大学本科招生计划发布!
  5. autocad .net开发指南_就业指南||职路明灯(二十)
  6. CentOS6.x 下 /etc/security/limits.conf 被改错的故障经历
  7. BZOJ1566 [NOI2009]管道取珠
  8. Javascript 浏览器探测
  9. 默认构造函数和拷贝构造函数
  10. [µC/GUI 学习]µC/GUI移植