JS minification,Heroku和jQuery.parseJSON

时间:2014-01-04 16:03:39

标签: jquery angularjs heroku

我只是在我的网络应用中挖掘错误。 它与Rails 3和AngularJS一起运行,当在Heroku上部署Web应用程序时,我遇到了这个错误:

Unknown provider: tProvider <- t

我在Stackoverflow上找到了一些关于缩小问题的方法,然后更深入地指出这些行。 然后在测试后我发现它并且感到惊讶:

 $scope.list = jQuery.parseJSON(list_json);

list_json是临时存储在div中的数据。这适用于本地。 知道为什么jQuery.parseJSON会产生这个错误吗?有解决方法吗?

1 个答案:

答案 0 :(得分:0)

如果你不在本地使用缩小的JS,那就可以解释这种差异。如果你看一下缩小的工作原理,你会发现你的依赖关系变成了变量名,比如ab,以使它们成为&#34;迷你&#34; 。所以Angular不再知道你所指的是什么。有几种方法可以解决这个问题:

  1. ngmin是一款可以为您自动执行此操作并避免重复的工具。
  2. 当您定义工厂,控制器,服务等时,可以使用带有显式变量命名的数组表示法来防止缩小名称。下面是一个例子。
  3. <强> BAD

    
    angular.module('MyApp')
        .controller('MyController', function ($scope, OtherDep) {
    
        });
    

    不可

    
    angular.module('MyApp')
        .controller('MyController', ['$scope', 'OtherDep', function ($scope, OtherDep) {
    
        }]);
    

    注意:当您使用数组表示法时,请确保您引用了&#39; vars与你的(注入,变种)的顺序相同。