代码之家  ›  专栏  ›  技术社区  ›  gib65

在我的AngularJS应用程序中,错误[$injector:unp]是什么意思?

  •  0
  • gib65  · 技术社区  · 2 年前

    我们正在开发AngularJS应用程序,我在控制台中收到一个错误。我不知道这意味着什么。

    我正在实现一个新页面,用户可以通过单击链接访问该页面。它有自己的模板和控制器文件。我在routes.js文件中为它添加了一个条目。当我点击链接时,我在控制台中收到以下错误:

    enter image description here

    它渲染页面,但Angular功能都不起作用——即插值不起作用,可折叠面板不会展开,等等。我在控制器的开头放了一个断点,它不会被击中。我在控制器的开头放了一个console.log,但它不打印。所以我很确定这个错误是在阻止控制器运行。

    以下是路由器中的条目:

    $stateProvider.state('application.cebmHelpDocument', {
        url: "/helpDocument",
        parent: 'application',
        templateUrl: "template/components/createEditBaselineTemplates/helpDocument.html",
        controller: "app.cebmHelpDocument",
        onEnter: stopLoading
    })
    

    以下是控制器(省略内容):

    (function (define, angular, $, _) {
        'use strict';
        define(
            ["appControllers"]
            ,function (controllers) {
                controllers.controller('app.cebmHelpDocument', [
                    '$scope',
                    '$modalInstance',
                    '$timeout',
                    '$filter',
                    'PDFFileService',
                    function (
                        $scope,
                        $modalInstance,
                        $timeout,
                        $filter,
                        PDFFileService
                    ) {
                        ...
                    }
                ]);
                return controllers;
            }
        );
    }(define, angular, jQuery, _));
    

    以及进入页面的链接:

    <a href="http://localhost:8085/PAM/Interval.aspx#/helpDocument">
        <i id="help-icon" class="fa fa-question-circle"></i>
    </a>
    

    需要注意的一点是,当我点击链接时,url会更改为正确的路径,但除了在控制台中收到错误外,其他什么都没有发生。然后我刷新页面并加载目标页面(但Angular功能不起作用)。

    还要注意控制台错误提到 <div ui-view="" class="tab-content tab-content-tabs-subpage ng-scope"> 当我检查页面时,我看到这个标签包装了页面模板的主div。

    最后需要注意的一件事是:当我把模板和控制器放在模态中时,它们工作得很好。也就是说,该链接将打开一个模态,并使模板看起来很好,控制器的所有功能都正常工作。我不需要路线。但我们决定把它移到一个新的页面上,这就是问题开始的时候。

    如能在这个问题上提供任何帮助,我们将不胜感激。谢谢

    1 回复  |  直到 2 年前
        1
  •  1
  •   Isonimus    2 年前

    此错误是由于$injector无法解析所需的依赖项(app.cebmHelpDocument)造成的。若要解决此问题,请确保正确定义和拼写依赖项。

    来源: https://docs.angularjs.org/error/$injector/unpr