在这一步中您将学到如何创建您自己的展示过滤器。

  ·在先前的步骤中,细节页面展示“true”或“false”来显示某部电话是否有某项功能。在这一步中,我们将使用自定义的过滤器来将这些个字符串转化成符号:✓ 代表“true”, ✘代表“false”。

让我们看看过滤器代码看起来是什么样的。

最重要的改变展示如下,您可以点击这里在GitHub上查看全部的不同。

checkmark过滤器

由于这个过滤器是大众化的(比如:它没有指向任何视图或组件),我们打算将其在一个core模块中注册,该模块包含了“广泛应用”的特点。

app/core/core.module.js:

angular.module('core', []);

app/core/checkmark/checkmark.filter.js:

angular.module('core').filter('checkmark', function() {return function(input) {return input ? '\u2713' : '\u2718';};});

(正如您可能注意到的那样,我们(不出意外地)给我们文件添加了一个.filter后缀。)

我们的过滤器名为“checkmark”。判断input是true还是false,并且返回两个我们选择的统一字符集中的一个来代表真(\u2713 -> ✓)和假(\u2718 -> ✘)。

现在我们的过滤器已经准备好了,我们需要在我们的主phonecatApp模块中将core模块注册为一个依赖。

app/app.module.js:

angular.module('phonecatApp', [...'core',...
]);

模板

由于我们创建了两个新文件(core.module.js, checkmark.filter.js),我们需要将它们引入到我们的布局模板。

app/index.html:

...
<script src="core/core.module.js"></script>
<script src="core/checkmark/checkmark.filter.js"></script>
...

在Angular中使用过滤器的语法如下:

{{expression | filter}}

让我们在电话细节模板中部署过滤器:

app/phone-detail/phone-detail.template.html:

...
<dl><dt>Infrared</dt><dd>{{$ctrl.phone.connectivity.infrared | checkmark}}</dd><dt>GPS</dt><dd>{{$ctrl.phone.connectivity.gps | checkmark}}</dd>
</dl>
...

实验

  ·让我们用一些Angular自带的过滤器来做个实验,在index.html中添加如下绑定:

    ·{{'lower cap string' | uppercase}

    ·{{{foo: 'bar', baz: 42} | json}}

    ·{{1459461289000 | date}}

    ·{{1459461289000 | date:'MM/dd/yyyy @ h:mma'}}

  ·我们也可以用input元素创建一个数据模型,并将其绑定至一个过滤器,在index.html中添加如下:

<input ng-model="userInput" /> Uppercased: {{userInput | uppercase}}

总结

现在我们已经学到如何编写一个自制过滤器了,让我们进入下一步来学习怎么使用Angular来扩展电话细节页面。

转载于:https://www.cnblogs.com/krischan/p/5547500.html

[Angular Tutorial] 11 -Custom Filters相关推荐

  1. Distiller tutorial: Pruning Filters Channels

    本文为对distiller教程 Pruning Filters & Channels 的翻译. 原文地址:Pruning Filters & Channels Introduction ...

  2. [转]微软代码示例:ASP.NET 2.0 三层架构应用程序教程系列

    本文转自:http://www.codeusing.com/hi/uephee.wen/resource/view/170.aspx 资源分类:微软代码示例               更新日期:20 ...

  3. angular面试题及答案_关于最流行的Angular问题的StackOverflow上的48个答案

    angular面试题及答案 by Shlomi Levi 通过Shlomi Levi 关于最流行的Angular问题的StackOverflow上的48个答案 (48 answers on Stack ...

  4. Git - Tutorial官方【转】

    转自:http://www.vogella.com/tutorials/Git/article.html#git_rename_branch Lars Vogel Version 5.8 Copyri ...

  5. Angular / RxJs我应该何时退订`Subscription`

    本文翻译自:Angular/RxJs When should I unsubscribe from `Subscription` When should I store the Subscriptio ...

  6. firebase auth_使用Auth0对Firebase和Angular进行身份验证:第1部分

    firebase auth 本文最初发布在Auth0.com博客上 ,并经许可在此处重新发布. 在这个分为两部分的系列教程中,我们将学习如何构建一个使用Auth0身份验证保护Node后端和Angula ...

  7. Angular项目构建指南 - 不再为angular构建而犹豫不决(转)

    如果你不知道什么是Angular或者根本没听说过,那么我接下来所说的对你来说毫无益处,不过如果你打算以后会接触Angular或者干脆要涨涨姿势~读下去还是有点用的. Angular和它之前所出现的其余 ...

  8. Angular v6 正式发布

    Angular 6 正式发布 Angular 6 已经正式发布了!这个主要版本并不关注于底层的框架,更多地关注于工具链,以及使 Angular 在未来更容易快速推进. 作为发布的一部分,我们同步了主要 ...

  9. 【开发记录】DirectX Custom Graphics Engine(1)

    DirectX 11 Custom Graphics Engine (1) 这学期修了一节图像编程的课 大概是记录一下开发过程?Little bit about myself,博主是个处于大三大四之间 ...

最新文章

  1. mqtt 负载均衡_EMQ百万级MQTT消息服务(分布式集群)
  2. java concurrenthashmap与阻塞队列
  3. 文言文编程还不够好玩?这里有个16岁高中生开发的粤语编程项目,GitHub star量600+...
  4. [唐诗]入朝洛堤步月-上官仪
  5. python官网下载步骤64位-windows下载并安装Python的具体步骤
  6. php和python交互-浅析PHP与Python进行数据交互
  7. 为什么要阅读——兼分享《首先,打破一切常规》[中译文]:世界顶级管理者的成功秘诀/(美)马库斯·白金汉,(美)柯特·科夫曼 著...
  8. Log Buffer
  9. c语言回调函数_C语言学习第26篇---函数与指针分析 回调函数
  10. sockaddr_in 结构体
  11. Qt Creator连接MCU
  12. C# 声明方法的语法
  13. 罗永浩进军乐坛,参加《谁是宝藏歌手》,网友:来祸害音乐圈了?
  14. iOS 获取屏幕的属性和宽度
  15. chromium之message_pump_win之二
  16. Mac Automator小教程,简单易懂
  17. 不同行业的软件安全标准介绍和对比
  18. linux在虚拟机添加一块10,redhat linux 虚拟机如何增加一块虚拟硬盘
  19. 2021中国山地自行车哪个品牌好全球十大顶级自行车品牌排行榜
  20. java实现12306查票_GitHub - HendSame/J12306: 12306抢票程序JAVA版

热门文章

  1. JQuery中2个等号与3个等号的区别
  2. 生成删除约束语句 SQL语句
  3. php框架是不是累赘,PHP框架,伤不起啊,伤不起
  4. 2021年人工神经网络第四次作业 - 第二题MNIST手写体识别
  5. 第十五届全国大学生智能汽车竞赛人工智能创意赛(预赛)
  6. 分形:一种计算出来的花朵
  7. python苹果手机的api_Python中的api,API
  8. elf section类型_ELF文件解析(一):Segment和Section
  9. leetcode-cli 用命令行开心的刷算法
  10. pthread_mutex_lock 和 pthread_mutex_unlock