我已经实现了以下过滤器/管道来大写首字母,在module.ts等中导入。
pipe.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(' ');
}
}
一切正常,除非我在这个表达式中使用它,我得到 - 无法读取属性&to to ofCowerCase&#39;未定义的
{{messageItem?.cc && messageItem?.cc[0]?.name | capitalize}}
答案 0 :(得分:2)
在管道中添加null / undefined检查以在调用.toLowerCase
之前检查字符串是否为空
if (str === undefined) return [];
答案 1 :(得分:0)
管道执行初始化为null,因为这是异步的。你需要处理undefined
变量
var splitStr = str.toLowerCase().split(' ') || []