使用由angular.module()。controller()创build的AngularJS控制器

对于AngularJS我还是很新的,并且正在设置我的第一个应用程序。 我希望能够做到以下几点:

angular.module('App.controllers', []) .controller('home', function () { $scope.property = true; }]); angular.module('App', ['App.controllers']) .config(['$routeProvider', function($routeProvider) { $routeProvider.when('/', {templateUrl: 'partials/home.html', controller: home}); }]); 

使用此设置将生成以下错误:

 Uncaught ReferenceError: home is not defined from App 

我的问题是:如何注册控制器使用angular.module.controller() (或$controllerProvider.register()直接),并在我的应用程序中的其他地方使用注册的控制器。

我的动机:我想避免使用全局构造函数作为我的控制器(如angularjs.org使用的大多数例子)或复杂的命名空间。 如果我可以注册和使用控制器作为单一的variables名称(不是那么放在全球范围内),这将是理想的。

尝试使用string标识符。

routeProvider.when('/', {templateUrl: 'partials/home.html', controller: 'home'});

当使用文字时,它正在寻找一个名为home的variables,但在这种情况下不存在。

如果你得到的控制器没有定义的错误,你必须在报价单内写下你的控制器名称。

或者像这样定义你的控制器

 function controllerName() { //your code here } 

请参阅: 未捕获的ReferenceError:控制器在AngularJS中没有定义