angular2,Pipe管道初使用。

以前都知道angular2有管道这个东西,不过,由于没有使用的必要,也就没怎么看。

今天,做页面,接收点击查询传来的数据,然后,显示出来。

我的做法是在本地新建一个Object对象result。然后,在数据传过来的时候,赋值到result。

可问题出在,初始化显示模板时,我使用了 

1
{{ result.property }}

  的数据绑定方式,但是,这种方式在 component 初始化的时候,报错了。

说 result.property 属性找不到。其实,想一想也明白,初始化html的时候,

result是undefined,所以找不到。

我想了其中一种方法,就是在 result 初始化的时候,用这种形式

result = {
  property1: 'null',
  property2: 'null',
......    
}

但是,属性差不多有40多个,我岂不是得写40多次!肯定不行。

后来,想到了angular2有管道这个东西,然后,看了下文档,觉得能用管道解决我这问题。

写个管道判断就行了!

复制代码
import { Pipe, PipeTransform } from '@angular/core';

@Pipe({name: 'juedeProperty'})
export class JudgePropertyPipe implements PipeTransform {
  transform(obj: Object, pro: string): any {
    if (obj != undefined) {
      return obj[pro];
    } else {
      return 'null';
    }
  }
}
复制代码

管道含义,传入一个obj: Object类型,传入一个pro: string类型,

如果obj为空,就返回 'null',

如果obj不为空,那么就将属性值返回。

最后,将 JuedgePropertyPipe 导入到 module,

然后,module中的所有组件就都能使用了。

{{ result | JudgeProperty: 'property1' }}

 

posted @   0小羊0沉默  阅读(1393)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示