Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在角度视图中获取所有货币筛选器项_Javascript_Angularjs_Filter_Currency - Fatal编程技术网

Javascript 在角度视图中获取所有货币筛选器项

Javascript 在角度视图中获取所有货币筛选器项,javascript,angularjs,filter,currency,Javascript,Angularjs,Filter,Currency,我目前的工作逻辑应该是根据用户选择的货币(dls、eur、brl)更改视图中的所有价格,我想知道是否有可能在应用“货币”过滤器的位置获取视图中的所有元素。e、 g <div> {{ somePrice | currency }} {{ anotherPrice | currency }} {{ vacationTicketCost | currency }} </div> 这样我就可以把货币的变化应用到所有的值上。这是可能的还是我应该寻找另一种方

我目前的工作逻辑应该是根据用户选择的货币(dls、eur、brl)更改视图中的所有价格,我想知道是否有可能在应用“货币”过滤器的位置获取视图中的所有元素。e、 g

<div>
    {{ somePrice | currency }}
    {{ anotherPrice | currency }}
    {{ vacationTicketCost | currency }}
</div>
这样我就可以把货币的变化应用到所有的值上。这是可能的还是我应该寻找另一种方法


问候。

您的要求可能不是一个好主意,因为它要求您的控制器了解您的视图。相反,您要做的是将
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
的参数添加到控制器的构造函数中来传入过滤器


这是一个代码笔,显示了上述内容:

您应该查看
$rootScope
以存储当前货币。您可以从中访问您的筛选器。@JosueIbarra mmm。。。我不认为这是个好主意,要记住有很多价值观,所以。。。我不认为$rootScope这是一个好的方法。我认为你应该明确你想要的最终结果是什么。解释为什么你想得到一个过滤后的价格数组,因为虽然你所问的可能有更好的方法。我的意思是,在过滤器中保留货币的显示逻辑。您只需要一个当前货币的全局变量就可以在整个应用程序中更改它。@JosueIbarra噢!我明白了,也许可以,你能提供一个简单的例子吗?@flaalf如果这个解决方案对你有效,你应该把它标记为答案。
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);
    });