我无法弄清楚我在这里做错了什么。
//app.js
'use strict';
var app = angular.module('maq', [
'ui.router',
'maq.home.controller'
]).run([
'$rootScope',
'$state',
'$stateParams', function($rootScope, $state, $stateParams){
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
}])
.config([
'$stateProvider',
'$urlRouterProvider', function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url: '/',
templateUrl: 'views/home.html',
controller: 'maq.home.controller'
})
}]);
//controller
'use strict';
app
.controller('maq.home.controller', [function(){
}]);
//error
Uncaught Error: [$injector:modulerr] Failed to instantiate module maq due to:
Error: [$injector:modulerr] Failed to instantiate module maq.home.controller due to:
Error: [$injector:nomod] Module 'maq.home.controller' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
答案 0 :(得分:1)
您实际上没有名为maq.home.controller
的模块,而是您的注册方式是控制器名称。
如果您想将控制器与另一个模块分开(就像您要做的那样)
尝试: -
angular.module('maq.controller', []); //<-- Module creation
//...
angular.module('maq.controller')
.controller('HomeController', [function() { //<-- Controller registration
}]);
并在您的应用中: -
var app = angular.module('maq', [
'ui.router',
'maq.controller' //<-- Controller mmodule
]);
或者只是删除对不存在的模块的依赖: -
angular.module('maq', [
'ui.router',
//'maq.home.controller' <-- Remove this
])
答案 1 :(得分:0)
当它不是模块时,你试图依赖另一个名为maq.home.controller的模块,它是一个控制器。您不需要在模块声明中将控制器列为依赖项。所以就这样把依赖性拿出来:
var app = angular.module('maq', [
'ui.router'
])