AngularJS:参数'Ctrl'不是函数,未定义

时间:2015-01-14 23:42:05

标签: javascript angularjs

我正在学习AngularJS,并且在实现控制器时遇到了这个错误。

有人可以指出什么是错的吗? (除非某些功能已被弃用,否则完全按照教程中的说明进行操作?)

我收到以下错误: Argument 'Ctrl' is not a function, got undefined

HTML

<!DOCTYPE html>
<html ng-app>
<head lang="en">
<meta charset="UTF-8">
<title>AngularJS Controller</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js">   </script>

</head>
<body>
<div ng-controller="Ctrl">
    <input ng-model="name">
    <input ng-model="age">
    <h1>{{ name }}</h1>
    <h1>{{ age }}</h1>
</div>

<script>
    var Ctrl = function($scope) {
        $scope.name = "Noob";
        $scope.age = "21";
    };
</script>

2 个答案:

答案 0 :(得分:6)

据我所知,您需要使用module.controller方法定义控制器。例如,将您的应用命名为myApp

<html ng-app="myApp">

和js部分将是:

angular.module('myApp', [])
    .controller('Ctrl', ['$scope', function($scope) {
        $scope.name = "Noob";
        $scope.age = "21";
    }]);

答案 1 :(得分:1)

您需要定义自己的应用

var myApp = angular.module('myApp',[]);

并将$ scope传递给您的控制器

var Ctrl = function($scope) {

以下是这些变化的小提琴链接:http://jsfiddle.net/fxk7mtb7/