首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript错误未知提供程序: Rails缩小Angularjs后的tProvider <- t

Javascript错误未知提供程序: Rails缩小Angularjs后的tProvider <- t
EN

Stack Overflow用户
提问于 2013-09-23 08:29:30
回答 4查看 12.8K关注 0票数 19

我的Rails应用程序在编译资源时打开资源放大后无法工作。我将角度控制器转换为使用括号表示法,并得到以下错误,有没有方法可以调试它?

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

JS错误

代码语言:javascript
复制
Error: Unknown provider: tProvider <- t
at Error (<anonymous>)
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
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-23 08:35:20

这个错误本身是有角度的,表示它不知道为't‘注入什么。这意味着't‘必须是您的某个注射的缩写名称。

如果它在缩小之前有效,但在缩小之后不起作用,那么它一定是某个地方的问题,没有使用最小安全注入方法。

我会检查以确保您正在做的每件事都是minsafe的,并且您也没有试图缩减angular.js本身的非minsafe版本。始终使用angular包中的.min,而不是缩小您自己的(或者,如果您确实想缩小您自己的,请确保它是minsafe版本)。

下面是一个让控制器成为minsafe的例子。以下代码不是minsafe:

代码语言:javascript
复制
angular
    .module('myModule')
    .controller('MyCtrl', function($scope, myService) { 
        //your non-minsafe controller 
    });

为了保证最小的安全性,我们将函数调用封装在一个数组中,该数组以我们想要注入的东西开始,以相同的参数顺序结束函数调用:

代码语言:javascript
复制
angular
    .module('myModule')
    .controller('MyCtrl', ['$scope', 'myService', function($scope, myService) { 
        //your minsafe controller 
    }]);
票数 48
EN

Stack Overflow用户

发布于 2014-01-06 06:51:55

我在gem hiravgandhi/angularjs-rails上也遇到了同样的问题。

通过更改config/environment/production.rb中的设置,我可以在生产环境中停止微型化

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

按照gem安装说明的说明,在hiravgandhi/angularjs-rails gem中使用Rails 4.0.2应用程序。

票数 12
EN

Stack Overflow用户

发布于 2015-06-11 09:00:27

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

在此之前

代码语言:javascript
复制
var app = angular.module('myModule', ['restangular']);

app.config(function(RestangularProvider) {
    RestangularProvider.setDefaultHeaders({'Content-Type': 'application/json'});
    RestangularProvider.setBaseUrl('http://myapi.com/api/v1');
});

之后

代码语言:javascript
复制
var app = angular.module('myModule', ['restangular']);

app.config(['RestangularProvider', function(RestangularProvider) {
    RestangularProvider.setDefaultHeaders({'Content-Type': 'application/json'});
    RestangularProvider.setBaseUrl('http://myapi.com/api/v1');
}]);
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18950181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档