我很好奇AngularJS中究竟是什么装饰者.除了AngularJS文档中的模糊以及YouTube视频中的简短(虽然有趣)之外,在线提供的信息并不多.
正如Angular家伙所说的那样,装饰者是:
服务的装饰,允许装饰者拦截服务实例的创建.返回的实例可以是原始实例,也可以是委托给原始实例的新实例.
我真的不知道这意味着什么,我不确定为什么要将这个逻辑与服务本身分开.例如,如果我想在不同条件下返回不同的东西,我会将不同的参数传递给相关函数或使用另一个共享该私有状态的函数.
我仍然是一个AngularJS菜鸟,所以我确定这只是我所捡到的无知和/或坏习惯.
我可以手动为某些应用程序设置$ locale吗?
是否有可能只支持本地人的方法是在角度库中包含当前语言环境的本地化文件.如果有多种文化怎么办?在那种情况下,我必须动态加载本地化文件?我错过了什么?
当我在角度js中使用"货币"时,我得到一个美元符号.如何根据要求获得所需的货币符号.好像现在我需要知道如何使用货币显示卢比符号.如果有人能够解释如何在不同要求的时候将这种货币用于不同的符号,那将是非常有用的.
样品:
Item Price<span style="font-weight:bold;">{{item.price | currency}}</span>
Run Code Online (Sandbox Code Playgroud)
如果我的item.price是200.这里显示200 $.我需要显示卢比符号而不是美元.
为什么这个:
# Controller
$scope.price = -10;
# View
{{ price | currency }}
Run Code Online (Sandbox Code Playgroud)
结果($10.00)而不是-$10.00?
我必须像这样显示欧元货币:583 €.
但是这个代码:
{{ price | currency:'EUR':true }}
Run Code Online (Sandbox Code Playgroud)
我知道€583,Angular核心中是否有任何选项可以将符号移动到右边?许多欧洲国家使用右边的符号(法国,德国,西班牙,意大利).
正如你可以通过互联网阅读使用浮动代表货币是一个非常糟糕的主意.建议的最佳做法是使用代表美分的整数.这样就可以安全地避免遇到任何精度问题,尤其是在进行一些计算时.
因为我天真而且过于乐观,我选择了 - 尽管有所有警告 - 浮动代表我的应用程序中的货币.起初它进展顺利.现在我遇到了各种各样的问题(特别是比较),并希望从浮点数切换到整数.
不幸的是,angular不支持分整数作为货币过滤器的输入(至少据我所知).我有点惊讶,到目前为止看起来没有人提出这个问题(github上没有相应的问题,SO等都没有).
有没有最佳做法?您是否可以想到像这样的简单过滤器可能具有的任何缺点:
angular
.module('myApp')
.filter('cents', ['$filter', function($filter) {
return function(cents, symbol, fractionSize) {
var asFloat = cents / 100;
return $filter('currency')(asFloat, symbol, fractionSize);
};
}]);
Run Code Online (Sandbox Code Playgroud)