我的 AngularJS 应用程序中的错误 [$injector:unpr] 意味着什么?

问题描述 投票:0回答:1

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

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

它渲染了页面,但没有任何 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>

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

另请注意,控制台错误提到

<div ui-view="" class="tab-content tab-content-tabs-subpage ng-scope">
,当我检查页面时,我看到此标签包裹了页面模板的主 div。

最后一件事要注意:当我将模板和控制器置于模态中时,它们工作正常。也就是说,该链接将打开一个模式并渲染模板,并且控制器的所有功能都可以正常工作。我不需要为此指定路线。但我们决定将其移至新页面,这就是问题开始的时候。

任何有关此问题的帮助将不胜感激。谢谢!

javascript angularjs routes runtime-error
1个回答
-1
投票

如果没有任何组件、指令、控制或过滤器,请执行以下操作。

As mensagens ao lado indicam as dependentências que estao faltando ou para onde o Problema esta.

  • Provavelmente voce deve ter algum erro de digitalação,tenta verificar novamente nomenclatura da dependentência que voce ta tentando injetar,e se countere com o registro que voce colocou na dependentência.
  • 可能出现的错误,是与 AngularJS 模数相关的一个依赖项。方法“angular.mode('nomeDoModulo').service('nomeDoServico',....).
  • Veja se o modulo que contem a dependentencia esta sendo carregado ante voce tentar usa-la。 Eles devem ser carregados na ordem correta.
  • Veja se nao ha nenhum erro de escrita do seu codigo antes da aplicação da dependentencia pois o erro semper acontecerá.
  • 您可以使用小型化和小型化过程,并将其作为适当的技术来保护小型化过程中注入的依赖。

示例:

// Antes da minificação
myApp.controller('MeuController', ['$scope', 'MeuServico', function($scope, MeuServico) {
    // ...
}]);

// Após a minificação
myApp.controller('MeuController', ['$scope', 'MeuServico', function(a, b) {
    // ...
}])

没有示例,因为字符串 'MeuServico' 和 'MeuController' 开发对应程序作为依赖项注册,mesmo que seja depois da miniificação。

© www.soinside.com 2019 - 2024. All rights reserved.