AngularJS简单测试不起作用?

时间:2015-04-12 14:25:02

标签: angularjs

我正在尝试使用记事本和Chrome浏览器,这是我的代码,但它出现了错误

Error: [ng:areq] Argument 'testhere' is not a function, got undefined
http://errors.angularjs.org/1.3.15/ng/areq?p0=testhere&p1=not%20a%20function%2C%20got%20undefined

知道我在这里遗失的是什么吗?我确定这是微不足道的愚蠢,但在我的生命中找不到它!

<html ng-app>
    <head>
        <script>
        function testhere($scope)
        {
            $scope.totalcount=4;
        }
        </script>

        <script type="text/javascript" src="js/angular.js"></script>
    </head>
    <body>
        <div ng-controller="testhere">
            {{totalcount}}
        </div>
    </body>
</html>

3 个答案:

答案 0 :(得分:3)

从Angular 1.3.x开始,你无法通过defualt定义全局控制器

有两种方式

1)使用.controller()

注册控制器

首先通过在第一个参数中提供模块名称和在第二个参数中提供依赖项来创建模块(现在没有依赖项)

angular.module('myModule',[])

使用.controller()

angular.module('myModule',[])
.controller('testhere'.function CommentsCtrl($scope) {
       ...
    })

2)或设置全局控制器选项

angular.module('myModule',[])
.config(['$controllerProvider', function($controllerProvider) {
  $controllerProvider.allowGlobals();
}]);

in html

<html ng-app="myModule">

答案 1 :(得分:2)

通过此jsbin example评论所需的角度版本并查看差异。

答案 2 :(得分:1)

请参阅https://docs.angularjs.org/guide/controller以了解如何在Angular中定义控制器。你的testthere现在只是javascript中的函数,而不是控制器

而且,你的应用程序javascript(控制器等)应该在head部分的角度库之后