我如何使用 angular js 过滤器来格式化数组中的值

How can i use an angular js filter to format values in an array

我使用 angular 过滤器来进行各种有趣的格式化,但始终使用原始值。例如,将数字过滤成货币格式。

我如何对一组值进行相同类型的过滤?例如

price = 1
prices = [1,2,3]

假设货币是 https://docs.angularjs.org/api/ng/filter/currency

中提到的货币过滤器
{{price | currency}} 

会 return 1.00 美元

我愿意

{{prices | currency}} 

至 return [$1.00,$2.00,$3.00]

我怎样才能编写一个过滤器来做到这一点?或者我应该使用其他工具吗?

更多背景...我在 angular-selectize plugin 中使用这个数组。我没有对我的值使用 ng-repeat 的选项。

currency 过滤器适用于单个值。如果你想要一个应用于数组的过滤器,你需要添加自己的,例如:

angular.module('yourModule')
.filter('currenyArray', function($filter) {
  return function(input, uppercase) {
    input = input || [];
    var out = [];
    for (var i = 0; i < input.length; i++) {
      out.push($filter('currency')(input[i]))
    }
    return out;
  };
})

但是这将 return 一个数组。如果你确实想写数组,你需要调整函数来计算字符串而不是数组。