在 Yeoman 中使用多个 Angular 控制器

Posted

技术标签:

【中文标题】在 Yeoman 中使用多个 Angular 控制器【英文标题】:Using Multiple Angular Controllers with Yeoman 【发布时间】: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) 

);

任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

register.js 是否引用自 index.html?

【讨论】:

以上是关于在 Yeoman 中使用多个 Angular 控制器的主要内容,如果未能解决你的问题,请参考以下文章

npm / yeoman 在没有 sudo 的情况下安装 generator-angular

Yeoman for Angular,然后“grunt serve”将无法启动

Yeoman 构建的 Angular 应用程序未将引导字体部署到 Heroku

如何部署 yeoman angular-fullstack 项目?

Yeoman Angular.js grunt serve-d 应用程序从 livereload.js?snipver=1 延迟很长

如何使用打字稿在 gulp-angular-generator 中定义指令