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

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

本文关键字:数组 格式化 过滤器 何使用 angular js      更新时间:2024-02-03

我使用了角度过滤器来进行各种有趣的格式化,但总是针对基元值。例如,将数字过滤为货币格式。

我该如何对一个值数组进行同样的筛选?例如

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

假设货币是中提到的货币过滤器https://docs.angularjs.org/api/ng/filter/currency

{{price | currency}} 

将返回1.00美元

我想要

{{prices | currency}} 

返回【1.00美元、2.00美元、3.00美元】

我怎样才能写一个能做到这一点的过滤器?或者我应该使用另一种工具吗?

有关更多背景。。。我在angular selectize插件中使用这个数组。我不能选择在我的价值观上使用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;
  };
})

但是,这将返回一个数组。如果确实要编写数组,则需要调整函数以计算字符串而不是数组。