$injector:modulerr将自定义模块注入Angular应用程序

$injector:modulerr Injecting Custom Module Into Angular App

本文关键字:模块 注入 Angular 应用程序 自定义 injector modulerr      更新时间:2024-03-24

我有一个名为dashboard的主应用程序,我想注入一个名称为core的自定义模块。

我一直有这种注射错误,我不知道为什么。我正在遵循我同事的模板,它几乎是逐字逐句的,所以我不知道为什么它不适合我。

app.js

(function(){
    'use strict';
    var dependencies = [
        'ngRoute',
        'core' 
    ]; // all our modules  
    angular.module('dashboard', dependencies).config(Config); //.config(Config); 
    Config.$inject = ['$locationProvider'];
    function Config($locationProvider){
        $locationProvider.hashPrefix('!'); 
    }   
    angular.element(document).ready(function(){
        angular.bootstrap(document, ['dashboard']); 

    });
})();

布局.hbs

<!DOCTYPE html>
<html>
  <head>
    <title>{{title}}</title>
    <link rel='stylesheet' href='/javascripts/bootstrap/dist/css/bootstrap.css' /> 
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <div class="flud-container">
            {{{body}}}
    </div>
  </body>
    <!-- JS  Libraries -->   
  <script type='text/javascript' src='/lib/jquery/dist/jquery.min.js'></script>   
  <script type='text/javascript' src='/lib/bootstrap/dist/js/bootstrap.min.js'></script> 
  <script type='text/javascript' src='/lib/angular/angular.min.js'></script>
  <script type='text/javascript' src='/lib/angular-route/angular-route.min.js'></script> 
  <script type='text/javascript' src='/modules/core/core.client.module.js'></script>  
  <script type='text/javascript' src='/modules/core/config/core.client.routes.js'></script>  
  <script type='text/javascript' src='/app.js'></script>  
</html>

core.client.module.js

(function(){
    'use strict'; 
//  var dependencies = [ 

//  ]; 
    angular.module('core', []);
    angular.module('core').run(intialize);
    initialize.$inject = ['$rootScope', '$location']; 
    function intitialize($rootScope, $location){
        //initialize module's variables here 
    }  


}); 

控制台错误:

angular.js:38 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.5.3/$injector/modulerr?p0=dashboard&p1=Error%…(http%3A%2F%2Flocalhost%3A3000%2Flib%2Fangular%2Fangular.min.js%3A20%3A463)

当您使用IIFE模式来限制代码的范围时,您应该立即调用core.client.module.js的函数以使core模块可用。

core.client.module.js

(function(){ 
   //---- code here-----//
})(); //<---invoke the function