感到完全莫名其妙。我知道有几个问题已经被问到这个问题,我已经阅读并重读了所有这些问题。
Angular(使用ng-route)工作直到某个提交(我将包含js文件差异的图像)。我已经改变了我本来期望成为有罪的一方,如图所示:
更改了此
app.run(function($rootScope, $http){
$rootScope.logout = function(){
$http({
url: 'logout',
method: 'GET'
}).success(function(data){
window.location = window.location.href;
});
};
});
到这个
app.run(['$rootScope', '$http', function($rootScope, $http){
$rootScope.logout = function(){
$http({
url: 'logout',
method: 'GET'
}).success(function(data){
window.location = window.location.href;
});
};
}]);
但是,即使我完全承诺上面的代码,错误仍然存在,所以我真的不认为是这样。我还用大块代码评论了大块,似乎没有解决这个问题。
我附加了一个显示提交文件中差异的图像。在此提交之前,angular在Heroku / production上工作正常。我只是愚蠢而没有看到它吗?
http://imgur.com/SwsEeuH,oITUoY7,bQ8HKrj,tZF4HMS
提前致谢!
答案 0 :(得分:1)
当您使用破坏Angular依赖项的JavaScript minifier时会出现此类错误。因为Angular通过参数名称查找依赖关系,所以无法找到它们。
我不确定您将JavaScript用于缩小和合并的文件,但是您需要找到一种以Angular友好方式执行此操作的方法。我最近有一个项目使用ngmin
grunt插件来缩小我的JavaScript并开始出现类似的错误,直到我切换到ng-annotate
。
答案 1 :(得分:1)
我猜这个问题有点太迟了,但我遇到了同样的问题,但只是在使用Angular Material时。我所有的依赖项都按照建议注入,在使用Material之前一切正常。
我的设置是在Heroku上的生产中运行的Rails 5应用程序上的Angular。即使遵循关于Angular的funciton注释的最佳实践,injectin Angular Material也不会在生产中工作,并且会抛出UnknownProvider错误,除非您将ngannotate-rails
gem添加到项目中。
此gem可帮助在资源管道缩小JS文件并修复依赖注入之前正确注释角度文件。