我希望分数组件显示在零以上的位置,但是当它等于零时隐藏。例如:
{{123.45| currency:"USD$"}}
应显示$ 123.45,但
{{123 | currency:"USD$"}}
必须显示$ 123,而不是$ 123.00。
答案 0 :(得分:3)
我认为你只是说如果分数部分大于零,你只希望分数部分可见。如果是这样,你可以使用它;
{{amount | currency:"USD$": amount % 1 > 0 ? 2 : 0}}
答案 1 :(得分:1)
根据@Stafford Williams的回答,我创建了一个自定义指令。
另外,我调整它以支持你没有提供符号的情况。
.filter('currencyWithoutZeros', ['$filter', function($filter) {
return function() {
// Clone arguments so we can modify it
var argsCopy = Array.prototype.slice.call(arguments);
var currencyFilter = $filter("currency");
// If currency symbol was not provided, we need to manually add a second argument
if (argsCopy.length == 1)
argsCopy.push(undefined);
var input = argsCopy[0];
argsCopy.push(input % 1 > 0 ? 2 : 0);
return currencyFilter.apply(undefined, argsCopy);
};
}]);
使用它:
fractions only if existing with custom directive: <span id="currency-no-fractions-custom">{{amount | currencyWithoutZeros:"USD$" }}</span><br/>
fractions only if existing with custom directive (without symbol): <span id="currency-no-fractions-custom-no-symbol">{{amount | currencyWithoutZeros }}</span>