我在Ruby on Rails中使用了AngularJS。我使用了带有自定义符号的货币过滤器。
<span>{{value|currency:'¥'}}<span>该过滤器在开发环境中工作良好。
¥1,000.00但是,在生产模式下运行时,货币符号将转换为特殊字符。
�1,000.00PS:我在所有的文件中都使用了UTF-8编码。在production.rb中尝试了以下操作
config.assets.js_compressor = Sprockets::LazyCompressor.new { Uglifier.new(:mangle => false) }你知道怎么解决这个问题吗?谢谢大家
发布于 2013-04-19 13:37:05
我通过重写货币过滤器并添加.replace(/\uFFFD/g, currencySymbol);来修复这个问题
currencyFilter.$inject = ['$locale'];
function currencyFilter($locale) {
var formats = $locale.NUMBER_FORMATS;
return function(amount, currencySymbol){
if (isUndefined(currencySymbol)) currencySymbol = formats.CURRENCY_SYM;
return formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, 2)
.replace(/\u00A4/g, currencySymbol);
};
}最终的代码将如下所示
return formatNumber(amount,currencyFormat , ',', '.', fractionSize).
replace(/\u00A4/g, currencySymbol).replace(/\uFFFD/g, currencySymbol);发布于 2013-04-16 00:32:20
在您的production.rb环境文件中包含如下内容如何?config.assets.precompile += %w( angular.js )
或者可以使用这个gem https://github.com/hiravgandhi/angularjs-rails
https://stackoverflow.com/questions/16018413
复制相似问题