【发布时间】:2018-06-01 18:56:06
【问题描述】:
我已经实现了以下过滤器/管道来大写首字母,导入到 module.ts 等中。
管道.ts
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'capitalize'})
export class CapitalizePipe implements PipeTransform {
transform(str:any) {
var splitStr = str.toLowerCase().split(' ');
for (var i = 0; i < splitStr.length; i++) {
splitStr[i] = splitStr[i].charAt(0).toUpperCase() +
splitStr[i].substring(1);
}
// Directly return the joined string
return splitStr.join(' ');
}
}
一切正常,除非我在这个表达式中使用它,我得到 - 无法读取未定义的属性'toLowerCase'
{{messageItem?.cc && messageItem?.cc[0]?.name | capitalize}}
【问题讨论】:
-
这是异步的,所以管道在数据到达之前执行,因此
undefined -
有什么办法解决吗?
-
尝试使用不纯管道而不是纯管道...使用
pure: false -
你为什么用答案更新问题?现在你的问题/错误日志没有意义
-
不错,已更新,谢谢!