AngularJS错误:[ng:areq]参数'TestController'不是函数,未定义

时间:2016-03-24 17:00:33

标签: angularjs angular-controller

我正在尝试制作我的第一个控制器并收到此错误:

错误:[ng:areq]参数'TestController'不是函数,未定义

我简化了我的代码以找到错误但没有运气。它看起来像我在脚本中创建控制器和books数组并在div中逐字引用控制器。我错过了什么?

<!doctype html>
<html data-ng-app>
<head>
    <meta charset="utf-8"/>
</head>
<body>

    <div data-ng-controller="TestController">
        <ul>
            <li data-ng-repeat="b in books">{{ b.title + ' by ' + b.author }}</li>
        </ul>
    </div>

    <script src="angular.js"></script>
    <script>
        function TestController() {
            this.books = [{title: 'Angela', author: 'Donald Duck'}, {title: 'Angles', author: 'Dirty Harry'}];
        }
    </script>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

由于全局函数不再是angular.js中的控制器,所以已经很长时间了。您需要在模块中将该功能注册为控制器:

<html ng-app="myApp">

并在JS代码中:

angular.module("myApp", []).controller('TestController', function($scope) {
    $scope.books = ...;
});

你的角度知识已经过时了。重新阅读文档。

答案 1 :(得分:0)

或更简化的方式

angular.module("myApp", []).controller('TestController', TestController);

function TestController($scope) {
$scope.books= [{title: 'Angela', author: 'Donald Duck'}, {title: 'Angles', author: 'Dirty Harry'}];

}