angularjs – “未捕获错误:[$injector:unpr]”部署后有角度

前端之家收集整理的这篇文章主要介绍了angularjs – “未捕获错误:[$injector:unpr]”部署后有角度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个相当简单的Angular应用程序,在我的dev机器上运行正常,但是在部署它之后失败了这个错误消息(在浏览器控制台中):

未捕获错误:[$ injector:unpr] http://errors.angularjs.org/undefined/$injector/unpr?p0=tProvider < - t < - $ http < - $ compile 除此之外没有其他消息。它发生在页面第一次加载时。 我运行ASP.NET MVC5,Angular 1.2RC3,并通过git推送到Azure。 谷歌没有打开任何有趣的东西。 有什么建议么? 编辑: 我使用TypeScript,并使用$ inject变量定义我的依赖关系,例如:

export class DashboardCtrl {

    public static $inject = [
        '$scope','$location','dashboardStorage'
    ];

    constructor(
        private $scope: IDashboardScope,private $location: ng.ILocationService,private storage: IDashboardStorage) {
    }
}

我相信应该(或打算)绕过局部变量重命名在缩小过程中出现的问题,并可能导致此错误

也就是说,它显然与缩小过程有关,当我在我的dev机器上设置BundleTable.EnableOptimizations = true时,我可以重现它。

如果你关注你的链接,它告诉你,$ injector的错误导致无法解决你的依赖。这是一个常见的问题与角度当javascript被缩微/丑陋/无论你在做什么生产。

问题是当您有控制器;

angular.module("MyApp").controller("MyCtrl",function($scope,$q) {
  // your code
})

缩小将$ scope和$ q更改为随机变量,不会告诉angular要注入什么。解决方案是声明你的依赖如下:

angular.module("MyApp")
  .controller("MyCtrl",["$scope","$q",$q) {
  // your code
}])

这应该解决你的问题。

只是重新迭代,我所说的一切都在错误消息提供给你的链接

猜你在找的Angularjs相关文章