当我感到单个控制器变得太大时,我现在正尝试使用多个控制器。但是,导航到/signup
时由于某种原因找不到我的UserController。我收到此错误:
错误:[ng:areq]参数'UserController'不是一个函数,未定义
app.js
var app = angular.module('myApp', [
'ui.router',
'ngResource',
'myApp.controllers',
]);
angular.module('myApp.controllers', []);
app.config(function($stateProvider, $urlRouterProvider, $httpProvider) {
$stateProvider
.state('signup', {
url: '/signup',
templateUrl: 'views/signup.html',
controller: "UserController"
});
});
我按以下顺序包含
.js
文件:<script src="angular/controllers/mainCtrl.js"></script> //binded to body tag
<script src="angular/controllers/userCtrl.js"></script> //set in signup state
<script src="angular/app.js"></script>
UserController
angular.module('myApp.controllers').controller('UserController', function () {
//do stuff
});
我想念什么?
最佳答案
使自己更轻松,并创建更简洁的代码。
var app = angular.module('myApp', [
'ui.router',
'ngResource',
'myApp.controllers',
])
.config(function($stateProvider) {
$stateProvider
.state('signup', {
url: '/signup',
templateUrl: 'views/signup.html',
controller: "UserController"
});
});
您没有使用$ urlRoutProvider和$ httpProvider,为什么要注入它们?
到目前为止,Angular模块一无是处。除了在您的应用中加载第三方方代码和在测试过程中进行模拟之外。除此之外,没有理由在您的应用程序中使用多个模块。
要创建您的UserController,请执行
app.controller('UserController', function ($scope) {
//do stuff
});