使用使用angular.module()创建的AngularJS控制器.controller()

时间:2012-06-26 16:38:57

标签: 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时的大多数示例)或复杂的命名空间。如果我可以注册并使用控制器作为单个变量名称(不是那么放在全局范围内),这将是理想的。

2 个答案:

答案 0 :(得分:75)

尝试使用字符串标识符。

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

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

答案 1 :(得分:-1)

如果您没有定义控制器错误,则必须在引号内写下您的控制器名称。

或像这样定义你的控制器

function controllerName()
{
   //your code here
}

请参阅:Uncaught ReferenceError:Controller is not defined in AngularJS

相关问题