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 - 你的评论让我更深入地研究了其他模块)。它失败了,因为我很蹩脚,并且胖手指在资产管道中的路径,所以页面上不存在该库。
*羞愧地低下头*
感谢大家的快速帮助。非常感谢。
我有一个 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 - 你的评论让我更深入地研究了其他模块)。它失败了,因为我很蹩脚,并且胖手指在资产管道中的路径,所以页面上不存在该库。
*羞愧地低下头*
感谢大家的快速帮助。非常感谢。