当前位置: 首页 > 面试题库 >

部署完成后出现“未捕获的错误:[$ injector:unpr]”

轩辕越泽
2023-03-14
问题内容

我有一个相当简单的Angular应用程序,可以在我的开发机上正常运行,但是在部署它后却出现此错误消息(在浏览器控制台中)失败:

Uncaught Error: [$injector:unpr] http://errors.angularjs.org/undefined/$injector/unpr?p0=tProvider%20%3C-%20t%20%3C-%20%24http%20%3C-%20%24compile

除此之外,没有其他消息。页面首次加载时会发生这种情况。

我正在运行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) {
    }
}

我认为应该(或打算)解决在最小化期间​​出现的可能导致此错误的局部变量重命名问题。

就是说,这显然与缩小过程有关,因为当我BundleTable.EnableOptimizations = true在开发机器上进行设置时,就可以复制它。


问题答案:

如果您单击链接,它将告诉您该错误是由于$
injector无法解析您的依赖关系而导致的。当javascript最小化/丑化/无论您要对其进行生产时,这是angular的常见问题。

问题是当你有一个控制器的时候。

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

缩小更改$scope$q变成随机变量,该变量不会告诉angular要注入什么。解决方案是这样声明您的依赖项:

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

那应该解决您的问题。

重申一下,我所说的只是错误消息提供给您的链接。



 类似资料:
  • 我有一个spring-boot项目在IntelliJ IDE中运行良好,我试图将其部署在Heroku服务器上。该项目部署成功,但当我试图从POSTMAN访问它时,我得到了503错误:服务不可用。 以下是从Heroku成功部署后的日志记录: Heroku的申请日志: 有人能帮帮我吗?提前谢了。

  • 我试图在GlassFish server 4.1.0中部署ADF 12.1.3应用程序,但在部署过程中出现以下错误:将ADF essentials 3.1.2复制到GlassFish中的lib文件夹,ADF应用程序为12.1.3版本,GlassFish版本为4.1.0 部署过程中发生错误:部署应用程序时出现异常[MegatronApplicationOCS_07012015]:org.xml.sa

  • 在我的Node.js应用程序的测试中,让Chai的 工作时遇到了问题。测试在抛出的错误上不断失败,但是如果我将测试用例包装在try和catch中,并在捕获的错误上断言,它就会工作。 不像我认为的那样工作吗? 失败:

  • gtan@master:~$curl-il http://172.17.82.100:30131 curl:(7)无法连接到172.17.82.100端口30131:连接被拒绝 其中“172.17.82.100”是主节点ip地址。 gtan@master:~$kubectl get services-o wide-a NAMESPACE NAME TYPE cluster-ip external-

  • 问题内容: 我正在学习Angular.js,但无法弄清楚此简单代码有什么问题。看起来不错,但出现以下错误。 在添加之前(我只是保持原样),它给了我以下错误。这是为什么? 问题答案: 禁用AngularJS 1.3版全局控制器功能声明后 您需要首先创建一个AngularJS模块,然后将所有组件附加到该特定模块。 码 专门针对您的情况,AngularJS存在一些问题 (将其降级为 正常)。虽然我希望您

  • 我目前正在开发我的第一个vert.x服务,我对我的部署是如何实现的并不十分有信心。 我有几个垂直点来接受来自其他服务的请求,并将大量工作委托给其他垂直点。我如何可以旋转每个任务的垂直线并在工作完成后将其杀死,或者通过编程方式将垂直线按任务数量放大。 我目前正在启动时生成十个顶点,并使用事件总线将这些任务分布在顶点上。