具有自定义分隔符的Angularjs静态数字过滤器

All*_*ell 8 javascript angularjs

如何在Angularjs数字过滤器中将分隔符从逗号更改为自定义?

现在{{ price | number }}回来了1,000.00.我需要拥有它1 000.00.

我究竟需要如何重写内置角度滤波器?

dfs*_*fsq 15

您不必使用Angular源或将语言环境更改为其他语言.您甚至不需要为此编写自定义过滤器.只需NUMBER_FORMATS.GROUP_SEP将$ locale服务更改为您需要的任何内容:

$locale.NUMBER_FORMATS.GROUP_SEP = ' ';
$scope.price = 100000;
Run Code Online (Sandbox Code Playgroud)

但是最好在运行块中进行,而不是在控制器中进行.

angular.module('demo', []).controller('MainCtrl', function($scope, $locale) {
    $locale.NUMBER_FORMATS.GROUP_SEP = ' ';
    $scope.price = 100000;
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://code.angularjs.org/1.4.3/angular.js"></script>

<div ng-app="demo" ng-controller="MainCtrl">
    {{ price | number }}    
</div>
Run Code Online (Sandbox Code Playgroud)

  • 因为$ localeProvider不公开这些属性,所以你无法在配置块中轻松地重置它.更好的说法是:因为ngLocale模块创建了`$ locale`,它是一个值(不是提供者或常量),因此在配置块中无法访问它. (2认同)