一尘不染

JavaScript错误未知提供程序:Rails最小化Angularjs后tProvider <-t

angularjs

编译资产时,打开资产放大后,我的Rails应用程序无法工作。我将Angular控制器转换为使用方括号表示法,并得到以下错误,是否可以调试此方法?

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

JS错误

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

阅读 172

收藏
2020-07-04

共1个答案

一尘不染

这个错误本身就是Angular所说的,它不知道要为“ t”注入什么。这意味着“ t”必须是某处注射剂的最小名称。

如果它在缩小之前起作用,而在缩小之后却不起作用,那一定是由于某些问题而未使用最小安全注入方法。

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

这是使控制器具有最低安全性的示例。以下不是最低安全要求:

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

为了使其具有最小安全性,我们将函数调用封装在一个数组中,该数组以要注入的事物开始,并以相同顺序的参数结束于函数调用中:

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