在 Angular 视图中获取所有货币过滤器项目

get all currency filter items in an Angular view

我目前正在处理一个逻辑,该逻辑应根据用户选择的货币(dls、eur、brl)更改视图中的所有价格,我想知道是否有可能获得一个视图中的所有元素查看应用 "currency" 过滤器的位置。例如

<div>
    {{ somePrice | currency }}
    {{ anotherPrice | currency }}
    {{ vacationTicketCost | currency }}
</div>

然后在控制器中做一些魔术,最终得到一个像

这样的数组
var pricesArray = [somePrice, anotherPrice, vacationTicketCost];

这样我就可以将货币更改应用于所有值。这是可能的还是我应该寻找另一种方法?

此致。

您的要求可能不是一个好主意,因为它需要您的控制器了解您的视图。相反,您要做的是将 currency 过滤器传递到您的控制器中,并从那里使用它来创建您的显示值。然后你也可以把它们放在你的控制器中。

angular.module("app", [])
    .value("currentCurrency", "eur")
    .controller("controller", function(currentCurrency, currencyFilter){
        var vm = this;
        vm.val = "1.25";
        vm.currentCurrency = currentCurrency;

        vm.displayValue = currencyFilter(vm.val, vm.currentCurrency);
    });

Angular 允许您通过将名为 filternameFilter 的参数添加到控制器的构造函数中来传递过滤器。

这是显示上述内容的代码笔:http://codepen.io/troylelandshields/pen/EKjwRy