Javascript错误未知提供者:在Rails缩小Angularjs之后的tProvider < – t

在编译资产时打开资源放大后,我的Rails应用程序无效。 我转换Angular控制器使用括号表示法,并得到以下错误,有没有办法调试这个?

编译application.js https://gist.github.com/jianbo/6665161

JS错误

Error: Unknown provider: tProvider <- t at Error () at me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:21665 at Object.i [as get] (me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:20671) at me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:21753 at i (localme:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:20671) at n (me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:20805) at Object.r [as instantiate] (me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:21447) at me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:818:604 at me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:28889 at r (me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:8277) application-4f6cd4e170fc6ce5d181d869af318557.js:818 (anonymous function) application-4f6cd4e170fc6ce5d181d869af318557.js:818 (anonymous function) application-4f6cd4e170fc6ce5d181d869af318557.js:818 r.$broadcast application-4f6cd4e170fc6ce5d181d869af318557.js:818 (anonymous function) application-4f6cd4e170fc6ce5d181d869af318557.js:818 l application-4f6cd4e170fc6ce5d181d869af318557.js:818 l application-4f6cd4e170fc6ce5d181d869af318557.js:818 (anonymous function) application-4f6cd4e170fc6ce5d181d869af318557.js:818 r.$eval application-4f6cd4e170fc6ce5d181d869af318557.js:818 r.$digest application-4f6cd4e170fc6ce5d181d869af318557.js:818 r.$apply application-4f6cd4e170fc6ce5d181d869af318557.js:818 r application-4f6cd4e170fc6ce5d181d869af318557.js:818 m application-4f6cd4e170fc6ce5d181d869af318557.js:818 v.onreadystatechange application-4f6cd4e170fc6ce5d181d869af318557.js:818 

这个错误本身就是Angular说它不知道要为’t’注入什么。 这意味着’t’必须是某个注射点的缩小名称。

如果它在缩小之前工作但不是在那之后它必须是某个地方不使用最小安全注射方法的问题。

我会检查以确保你所做的一切都是安全的,而且你也没有试图缩小angular.js本身的非minsafe版本。 始终使用角度包中的.min而不是缩小自己(或者如果你想缩小自己的尺寸,请确保它是minsafe版本)。

这是一个使控制器安全的例子。 以下是不安全的:

 angular .module('myModule') .controller('MyCtrl', function($scope, myService) { //your non-minsafe controller }); 

为了使它成为minsafe,我们将函数调用封装在一个数组中,该数组以我们想要注入的东西开头,并以相同的参数顺序结束于函数调用中:

 angular .module('myModule') .controller('MyCtrl', ['$scope', 'myService', function($scope, myService) { //your minsafe controller }]); 

我对gem hiravgandhi / angularjs-rails有同样的问题

通过更改config / environments / production.rb中的设置,我能够在生产中处理minifcation

config.assets.js_compressor = Uglifier.new(mangle:false)

根据gem安装说明使用带有hiravgandhi / angularjs-rails gem的Rails 4.0.2应用程序。

我有同样的问题,我发现问题不在.controller调用,它在.config中,它不是minification安全。

之前

 var app = angular.module('myModule', ['restangular']); app.config(function(RestangularProvider) { RestangularProvider.setDefaultHeaders({'Content-Type': 'application/json'}); RestangularProvider.setBaseUrl('http://myapi.com/api/v1'); }); 

 var app = angular.module('myModule', ['restangular']); app.config(['RestangularProvider', function(RestangularProvider) { RestangularProvider.setDefaultHeaders({'Content-Type': 'application/json'}); RestangularProvider.setBaseUrl('http://myapi.com/api/v1'); }]); 

我对angular-blockUI模块有类似的问题。猜猜我可能不得不使用该文件的预先缩小版本作为单独的东西加载而不是包含到Web Essentials包中。 我们通过凉亭得到的一些代码根本没有准备捆绑和缩小….