如果货币值为零,我要求不提供货币值。
即:
v=1 render $1
v=0 render nothing
[编辑]
:鸡蛋在脸上:
一旦我深入了解核心代码,我发现 是自定义过滤器。
angular
.module('com.td.tdct.bbpcCore')
.filter('currencyFilter', ['$rootScope', 'tdBbpcUserService', '$filter', function ($rootScope, tdBbpcUserService, $filter) {
return function (input, decimal, symbol) {
var languageCd;
if (input) {
if (!$rootScope.languageChange) {
languageCd = tdBbpcUserService.getLanguageCd();
} else {
languageCd = $rootScope.languageChange;
}
var value = input.toString().replace(/[^\d|\-+|\.+]/g, '');
value = (angular.isNumber(decimal)) ? $filter('number')(value, decimal) : $filter('number')(value);
if (angular.isString(languageCd) && (languageCd.toUpperCase() === "FR" || languageCd.toUpperCase() === "FR_CA")) {
value = (angular.isDefined(symbol) && symbol === "N") ? value.toString() : value.toString() + " $";
} else {
value = (angular.isDefined(symbol) && symbol === "N") ? value.toString() : "$ " + value.toString();
}
return value;
}
};
}]);
因此实施:
{{asset.prevMarginalRate | currencyFilter:0}}
我想要
或
以最佳实践为准。
在第一种情况下,我试图弄清楚如何传递那个旗帜,因此:
{{asset.prevMarginalRate | currencyFilter:0, true}}
答案 0 :(得分:0)
您需要创建自己的过滤器才能实现此目的。
我会做这样的事情:
app.filter('currencyWithoutZero', function() {
return function(x) {
if(x !== 0) return '$' + x;
else return '';
};
});
<强> Working demo 强>
答案 1 :(得分:0)
0
falsy 。因此,您可以执行OR操作以删除任何false
/ null
/空值。
function foo(x) {
return x || "nothing";
}
v = 1;
console.log(foo(v));
v = 0;
console.log(foo(v));