angular 1.6.5 angular.bootstrap 注入错误

angular 1.6.5 angular.bootstrap injection error

我有一个 meanjs.org 骨架应用程序,我已经将其转换为 hapi-js 而不是 express,还转换为 postgres 而不是 mongo,并使用 OAUTH 进行身份验证。 (好的,真的,我只是喜欢 server/client 模块的文件夹结构 - 哈哈)

除了我的 Angular 部署(有点大不了)之外,所有这些都有效。是angular1.6.5(没时间学TS和A2)。它加载所有模块组件没有错误,路由等都没有错误。失败的第一件事是 document.ready:

之后的这一行

angular.bootstrap(document, [app.applicationModuleName]);

如果我将其注释掉并将 ng-app="appName" 添加到 HTML 而不是使用 bootstrap 方法,我会得到相同的结果...此错误:

Failed to instantiate module appN due to: Error: [$injector:modulerr]

我已确认其他所有内容都在正确无误地加载...不知道从这里去哪里...有什么建议吗?

@matias 请求完整代码,这里是 angular 配置:

(function (window) {
  'use strict';

  var applicationModuleName = 'appName';

  var service = {
    applicationEnvironment: window.env,
    applicationModuleName: applicationModuleName,
    applicationModuleVendorDependencies: ['ngResource', 'ngAnimate', 'ngMessages', 'ui.router', 'ui.bootstrap','ui-notification'],
    registerModule: registerModule
  };

  window.ApplicationConfiguration = service;

  // Add a new vertical module
  function registerModule(moduleName, dependencies) {
    // Create angular module
    angular.module(moduleName, dependencies || []);

    // Add the module to the AngularJS configuration file
    angular.module(applicationModuleName).requires.push(moduleName);
  }

  // Angular-ui-notification configuration
  angular.module('ui-notification').config(function(NotificationProvider) {
    NotificationProvider.setOptions({
      delay: 2000,
      startTop: 20,
      startRight: 10,
      verticalSpacing: 20,
      horizontalSpacing: 20,
      positionX: 'right',
      positionY: 'bottom'
    });
  });
}(window));

这里是 angular 初始化(首先加载配置,然后是初始化):

(function (app) {
  'use strict';

  // Start by defining the main module and adding the module dependencies
  angular
    .module(app.applicationModuleName, app.applicationModuleVendorDependencies);

  // Setting HTML5 Location Mode
  angular
    .module(app.applicationModuleName)
    .config(bootstrapConfig);

  bootstrapConfig.$inject = ['$compileProvider', '$locationProvider', '$httpProvider', '$logProvider'];

  function bootstrapConfig($compileProvider, $locationProvider, $httpProvider, $logProvider) {
    $locationProvider.html5Mode({
      enabled: true,
      requireBase: false
    }).hashPrefix('!');

    $httpProvider.interceptors.push('authInterceptor');

    // Disable debug data for production environment
    // @link https://docs.angularjs.org/guide/production
    $compileProvider.debugInfoEnabled(app.applicationEnvironment !== 'production');
    $logProvider.debugEnabled(app.applicationEnvironment !== 'production');
  }


  // Then define the init function for starting up the application
  angular.element(document).ready(init);

  function init() {
    // Fixing facebook bug with redirect
    if (window.location.hash && window.location.hash === '#_=_') {
      if (window.history && history.pushState) {
        window.history.pushState('', document.title, window.location.pathname);
      } else {
        // Prevent scrolling by storing the page's current scroll offset
        var scroll = {
          top: document.body.scrollTop,
          left: document.body.scrollLeft
        };
        window.location.hash = '';
        // Restore the scroll offset, should be flicker free
        document.body.scrollTop = scroll.top;
        document.body.scrollLeft = scroll.left;
      }
    }

    // Then init the app
    angular.bootstrap(document, [app.applicationModuleName]);
  }
}(ApplicationConfiguration));

试试这个,首先你必须创建你的应用程序(名称 + 依赖项列表):

var app = angular.module('myApp', []);

然后,bootstrap您的应用:

angular.bootstrap(document, [app.name]);

嗯。我觉得很害羞。我尝试了一种更简单的方法并介入我正在做的事情,看看我是否能找到罪魁祸首。

事实证明,我对 ui.bootstrap 的注入导致项目失败(感谢@estus - 你的评论让我更深入地研究了其他模块)。它失败了,因为我很蹩脚,并且胖手指在资产管道中的路径,所以页面上不存在该库。

*羞愧地低下头*

感谢大家的快速帮助。非常感谢。