【问题标题】:How can i use an angular js filter to format values in an array我如何使用角度 js 过滤器来格式化数组中的值
【发布时间】:2015-04-20 03:12:20
【问题描述】:

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

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

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 plugin 中使用了这个数组。我没有对我的价值观使用 ng-repeat 的选项。

【问题讨论】:

  • 好吧,您可以使用 ng-repeat 来获取各个值,然后过滤器将起作用。您能否向我们提供更多有关您希望如何处理格式化值的信息? IE 你只是要显示它们吗?是否有额外处理?等

标签: javascript angularjs filter angular-filters selectize.js


【解决方案1】:

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;
  };
})

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

【讨论】:

    猜你喜欢
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    相关资源
    最近更新 更多