Ruby on rails AngularJS过滤器-RubyonRails资产:预编译问题

Ruby on rails AngularJS过滤器-RubyonRails资产:预编译问题,ruby-on-rails,filter,angularjs,Ruby On Rails,Filter,Angularjs,我在RubyonRails中使用了AngularJS。我使用了带有自定义符号的货币过滤器 <span>{{value|currency:'¥'}}<span> 但是,在生产模式下运行时,货币符号将转换为特殊字符 �1,000.00 PS:我在所有文件中都使用了UTF-8编码。在production.rb中尝试了以下操作 config.assets.js_compressor = Sprockets::LazyCompressor.new { Uglifier.new(

我在RubyonRails中使用了AngularJS。我使用了带有自定义符号的货币过滤器

<span>{{value|currency:'¥'}}<span>
但是,在生产模式下运行时,货币符号将转换为特殊字符

�1,000.00
PS:我在所有文件中都使用了UTF-8编码。在production.rb中尝试了以下操作

config.assets.js_compressor = Sprockets::LazyCompressor.new { Uglifier.new(:mangle => false) }

你知道怎么解决这个问题吗?谢谢大家

在您的
production.rb
环境文件中包含类似的内容如何?
config.assets.precompile+=%w(angular.js)


或者可能使用这个gem

我做了一个黑客程序,通过覆盖货币过滤器并添加
.replace(/\uFFFD/g,currencySymbol)来修复这个问题

下面的原始代码摘自

最终的代码如下所示

return formatNumber(amount,currencyFormat , ',', '.', fractionSize).
        replace(/\u00A4/g, currencySymbol).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);