如何在if语句的简写中使用自定义管道?
这是我要使用的代码
<h1>Total Value {{data ? totalValue | moneyFormat : '$0'}}
这是我得到的错误
Template parse errors:
Parser Error: Conditional expression data ? totalValue | moneyFormat : null requires all 3 expressions at the end of the expression
所以基本上我已经建立了一个格式化货币的管道,这是我的管道
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'moneyFormat'})
export class MoneyFormatPipe implements PipeTransform {
transform(value: number) {
const formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD'
});
let formattedValue = formatter.format(value);
formattedValue = formattedValue.slice(0, -3);
return formattedValue;
}
}
现在我知道这可行,因为我在
之类的场景中使用了其他方法 <p>This is your dollar amount {{dollarAmount | formatMoney}}
我想念什么吗?我做错了吗?
请记住,为了简单起见,我所做的只是一个示例,而不是条件语句的真正功能。我完全知道我可以使用管道返回$ 0。
答案 0 :(得分:1)
我认为您需要在括号中加上一些内容:
{{data ? (totalValue | moneyFormat) : '$0'}
答案 1 :(得分:0)
我会尝试更明确的格式:
{{(data ? totalValue : '$0') | moneyFormat }}
应该大致评估为:
if (data) {totalValue | moneyFormat;} else { '$0' | moneyFormat }