我构建了下一个角度滤镜:
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.找到一种方法在服务加载后再次运行过滤器(我不知道它是否可能)
我会很高兴任何想法解决方案