【发布时间】:2014-02-19 21:17:26
【问题描述】:
我正在使用 Yeoman 在 Angular 中构建一个练习应用程序。我试图将我的控制器保存在单独的文件中。
但是,当转到我的“注册”路线时,它会在 Chrome 开发工具中引发错误:
"Error: [ng:areq] Argument 'RegisterCtrl' is not a function, got undefined
http://errors.angularjs.org/1.2.6/ng/areq?p0=RegisterCtrl&p1=not%20aNaNunction%2C%20got%20undefined"。
即使它引发错误,我仍然可以访问注册页面并查看“hello world”内容。
我看过:
- AngularJS: How do I create controllers in multiple files
- How to create separate AngularJS controller files?
尽管尝试了他们的一些建议,但两者都没有帮助解决我的问题。
目前,我的应用布局为:
app
...
--scripts
---controllers
-----main.js
-----register.js
---app.js
...
当我将 register.js 的内容移动到 Main.js 中时,它不再抛出错误。
App.js 看起来像这样:
angular.module('angYeomanApp', [
'ngCookies',
'ngResource',
'ngSanitize',
'ngRoute',
'ui.bootstrap'
])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.when('/register', {
templateUrl: 'views/register.html',
controller: 'RegisterCtrl'
})
.otherwise({
redirectTo: '/'
});
});
Main.js:
angular.module('angYeomanApp')
.controller('MainCtrl', function ($scope) {
});
Register.js:
angular.module('angYeomanApp')
.controller("RegisterCtrl", function ($scope) {
});
任何帮助将不胜感激!
【问题讨论】: