0

我的'顶级'角文件因此是:模块定义和两个过滤器。我使用rails运行angularJS。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,但是我讨厌安装宝石,因为它们似乎会导致与修复程序一样多的问题。

+0

按照你贴了,问题不应该因为微小的突破初始代码。你可以请用缩小版本创建一个plunkr。也分享非缩小的js文件。 – harishr 2014-10-29 12:15:39

+0

btw完全同意'但我讨厌安装宝石,因为它们似乎会导致许多问题,像修复程序一样。“#: – harishr 2014-10-29 12:16:29

+0

HarishR:哈哈高兴我不是唯一的!我已经修复了,我会分享上面的解决方案。 – 2014-10-29 12:20:03

回答

0

使用以下过程:

  • 安装ngannotate护栏宝石

  • 删除旧的缓存的资源,让他们重建

  • 重新预编译任何预编译的资产

  • 重新部署

参考