有没有办法用异步数据更新过滤器

时间:2015-03-03 20:41:24

标签: angularjs angularjs-service angularjs-filter

我构建了下一个角度滤镜:

App.filter('cur2symbol', ['CurrenciesService', function (CurrenciesService) {
        return function (input, iso) {
            input = input || '';
            iso = iso || 'ILS';
            var symbol= CurrenciesService.getCurrencySymbolByIso(iso);

            return symbol+input;
        };
    }])

此过滤器的含义是获取货币iso代码并转换为符号以供检验:
下一个代码{{200|cur2symbol:"ILS"}}将输出₪200

我的问题是 CurrenciesService 服务是Async,因此过滤器无法正常运行。 仅过滤服务负载获取符号后。

我想到了下一个解决方案:
 1.使用指令并使符号成为模型,而不是使用过滤器,因此它将在加载数据时更新。问题是它会创建太多的绑定,我在许多地方使用货币符号!  2.找到一种方法在服务加载后再次运行过滤器(我不知道它是否可能)

我会很高兴任何想法解决方案

1 个答案:

答案 0 :(得分:5)

如果有人遇到这个问题,我在这里找到了答案:

AngularJS : Asynchronously initialize filter