我正在尝试在我的Angular应用程序中创建一个更强大的大写管道。最初我拥有的大写管道只需要将单个词汇大写。现在我的情况可能有多个单词。这就是我的管道现在看起来像处理这种情况的那样:
transform(input: any) {
if (input !== null) {
const stringArr = input.split(' ');
let result = ' ';
const cap = stringArr.length;
for (let x = 0; x < cap; x++) {
stringArr[x].toLowerCase();
if (x === cap - 1) {
result += stringArr[x].substring(0, 1).toUpperCase() + stringArr[x].substring(1);
} else {
result += stringArr[x].substring(0, 1).toUpperCase() + stringArr[x].substring(1) + ' ';
}
}
return result;
}
}
但我在控制台中收到此错误:
ORIGINAL EXCEPTION:input.split不是函数
关于这里有什么想法?
答案 0 :(得分:1)
String#split
功能仅适用于字符串,否则您将收到ORIGINAL EXCEPTION: input.split is not a function
错误。
您必须设置一个条件,即给定元素必须是string
,否则 - 必须将其更改(如果可能)到string
或忽略。
if (input !== null && typeof input == 'string') {
input.split(' ')
} else {
input.join().split(' ')
}