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 }]) 这应该解决你的问题。 只是重新迭代,我所说的一切都在错误消息提供给你的链接。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |