Angular2 使用管道Pipe以及自定义管道格式数据
Angular 2 内建管道及分类
Angular 2 内建管道使用示例1.大写转换 <div> <p ngNonBindable>{{ 'Angular' | uppercase }}</p> <p></p> <!-- Output: ANGULAR --> </div>
2.小写转换 {{ 'Angular' | lowercase }}<!-- Output: angular --> 3.数值格式化
管道参数管道可以接收任意数量的参数,使用方式是在管道名称后面添加 : 和参数值。如 number: '1.4-4' ,若需要传递多个参数则参数之间用冒号隔开,具体示例如下: {{ 'semlinker' | slice:0:3 }}<!-- Output: sem --> 管道链
PipeDecorator const Pipe: PipeDecorator = <PipeDecorator>makeDecorator('Pipe',{
name: undefined,pure: true,// 默认是pure
});
PipeTransform 接口定义 interface PipeTransform {
transform(value: any,...args: any[]): any;
}
2.RepeatPipe 详解
2.3 通过 Reflect API 保存后的对象信息
2.4 管道解析 - PipeResolver 源码片段 // @angular/compiler/src/pipe_resolver.ts
@CompilerInjectable()
class PipeResolver {
constructor(private _reflector: ?ReflectorReader = ?reflector) {}
// 通过内部的?ReflectorReader对象提供的API读取metadata信息
resolve(type: Type<any>,throwIfNotFound = true): Pipe {
const metas = this._reflector.annotations(resolveForwardRef(type));
if (metas) {
// 读取保存的Pipe metadata 信息
const annotation = ListWrapper.findLast(metas,_isPipeMetadata);
if (annotation) { return annotation; }
}
if (throwIfNotFound) {
new Error(`No Pipe decorator found on ${stringify(type)}`);
}
return null;
}
}
2.5 RepeatPipe 管道的创建与执行 2.5.1 管道的创建
2.5.2 管道的执行 在 Angular 执行变化检测时,会自动调用管道中的 transform 方法 var currVal_100 = jit_inlineInterpolate21(1,'',valUnwrapper.unwrap(
jit_castByValue22 (self._pipe_repeat_6_0,self._pipe_repeat_6.transform)('lo',3)),'');
总结本文介绍了 Angular 2 中的常用内建管道的用法和管道的分类,同时也介绍了 pure 和 impure 管道的区别。 此外我们通过两个示例展示了如何自定义管道,最后详细分析了 RepeatPipe 管道的工作原理。建议读者更改 RepeatePipe 的 pure 属性为 false,体验一下 impure 管道。 转载自:https://www.pocketdigi.com/20170209/1563.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Gly
- bootstrap兼容IE8,IE7
- twitter-bootstrap – 使用Zurb Foundation 4/Twitter Boot
- angularjs – 角ui路由器转到URL
- 测试IP的BASH脚本
- angular – Ionic 3中提供者的全局实例
- 编写从管道读取的bash脚本
- MISCONF Redis is configured to save RDB snapshots, but
- 如何使用angular js绑定html元素中的javascript和ng-click事
- Angularjs:在应用程序配置通过后定义路由