使用使用 angular.module().controller() 创建的 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 使用)或复杂的命名空间。 如果我可以将控制器注册并使用为单个变量名称(然后不放在全局范围内),那将是理想的。

尝试使用字符串标识符。

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

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

如果您正在获取控制器未定义错误,则必须在引号中写入控制器名称。

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

function controllerName()
{
   //your code here
}

请参考这个: 未捕获的引用错误:控制器未在 AngularJS 中定义

最新更新