AngularJS:仅在生产中,依赖注入失败

时间:2014-10-29 11:58:10

标签: javascript ruby-on-rails angularjs dependency-injection production

我的'顶级'Angular文件因此是:模块定义和两个过滤器。我正在使用rails运行angularJS。

(function(){
  var app = angular.module('appname', ['Orders', 'TimePicker']);

  app.filter('money', function() {
    return function(input) {
      return input > 0 ? '£' + input : "FREE";
    };
  });

  app.filter('nodecimal', function() {
    return function(input) {
      input = parseInt(input)
      return input % 1 === 0 ? input.toFixed(0) : input.toFixed(2) ;
    };
  });
})();

它在开发上运行,但在生产中,我收到以下错误:“错误:错误:unpr 未知的提供商。未知提供者:nodecimalFilterProvider< - nodecimalFilter“。

据我所知,这是因为缩小。

我试图按照页面上的说明操作,例如,将过滤器的功能放在内联依赖注入中,如下所示:

  app.filter('nodecimal', [function() {
    return function(input) {
      input = parseInt(input)
      return input % 1 === 0 ? input.toFixed(0) : input.toFixed(2) ;
    };
  }]);

但是这没用。我试图按照错误页面上的说明进行操作:

https://docs.angularjs.org/error/ $注射器/ unpr?P0 = nodecimalFilterProvider%20%3 C-%20nodecimalFilter

并在此堆栈溢出问题上:

"Uncaught Error: [$injector:unpr]" with angular after deployment

我将尝试使用ngmin-rails gem,但我不喜欢安装宝石,因为它们似乎会导致修复问题。

1 个答案:

答案 0 :(得分:0)

使用以下过程:

  • 安装ngannotate-rails gem

  • 删除旧的缓存资源并允许重建它们

  • 重新预编译所有预编译资产

  • 重新部署

<强>参考