【问题标题】:Angular Controller is not defined?角度控制器没有定义?
【发布时间】:2015-05-27 05:31:02
【问题描述】:

错误:[ng:areq] http://errors.angularjs.org/1.3.15/ng/areq?p0=homeController&p1=not%20aNaNunction%2C%20got%20undefined

我收到上述错误

Controller.js

angular.module('app').controller('homeController', function($scope) {});

app.js

 var app = angular.module('app', ['base', 'ngRoute', 'routeResolverServices']);
angular.bootstrap(document, ['app']);
return app;

【问题讨论】:

  • 分享你的html文件
  • angular.bootstrap(document, ['app']); 包装成angular.element 准备好将解决您的问题

标签: angularjs angularjs-controller


【解决方案1】:

由于脚本的顺序,这不起作用(并且不会按照您定义的方式以任何顺序起作用)。当Controller.js 首先加载时,仍然没有名为"app" 的模块。当app.js 首先加载时,它会立即在没有控制器的情况下引导应用程序。

最好为每个文件定义一个模块,例如:

feature1.js

angular.module("feature1", []).controller("homeController", function(){});

app.js

var app = angular.module('app', 
             ['base', 'feature1', 'ngRoute', 'routeResolverServices']);
app.bootstrap(document, ['app']);

最后加载 app.js:

<script src="feature1.js"></script>
<scirpt src="app.js"></script>

【讨论】:

  • 您好,非常感谢您的回复。我按照你说的做了,它对我很有效。但我必须动态加载所有控制器。我也使用过 requirejs。
  • @vinothini,不确定您所说的“即时”或“动态”是什么意思......但无论如何,这应该是一个不同的(新)问题
  • OP 如果文件的方式错误,将会得到不同的错误 (nomod)。不过,很好的建议
  • @Phil,是的......我说它不会按任何顺序工作
猜你喜欢
  • 1970-01-01
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-25
相关资源
最近更新 更多