Angular JS控制器功能不起作用

时间:2017-02-21 12:36:35

标签: angularjs

 function studentController($scope) {
            $scope.student = {
                firstName: "Mahesh",
                lastName: "Parashar",
                fullName: function () {
                    var studentObject;
                    studentObject = $scope.student;
                    return studentObject.firstName + " " + studentObject.lastName;
                }
            };
        }
<html>
<head>
    <title>Angular JS Controller</title>
</head>
<body>
    <h2>
        AngularJS Sample Application</h2>
    <div ng-app="" ng-controller="studentController">
        Enter first name:
        <input type="text" ng-model="student.firstName"><br>
        <br>
        Enter last name:
        <input type="text" ng-model="student.lastName"><br>
        <br>
        You are entering: {{student.fullName()}}
    </div>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js">
    </script>
</body>
</html>
将此加载到Internet Explorer时,我没有得到全名。它只显示为{{student.fullName()}}。

为什么我没有得到全名? 我做错了吗?

3 个答案:

答案 0 :(得分:0)

您错过了声明的部分: - 主角度模块。你放在ng-app属性中的那个(如果你不这样做,你就没有Angular应用程序) - 声明Angular控制器并将其附加到主模块。

替换

<div ng-app="" ng-controller="studentController">

通过

<div ng-app="myApp" ng-controller="studentController">

在您的脚本中添加

var app = angular.module('myApp', []);
app.controller('studentController',['$scope', studentController]);

就在你的职能之前。

另外,我没有看到您将脚本链接到HTML文档的位置(在某个地方应该有另一个<script>标记,在加载Angular库之后,为此)。

答案 1 :(得分:0)

将对象属性fullName更改为:

 $scope.student = {
                    firstName: "Mahesh",
                    lastName: "Parashar",
                    fullName: function () {
                        return $scope.student.firstName + " " + $scope.student.lastName;
                    }
                };

答案 2 :(得分:0)

您需要在代码中初始化app模块,并将控制器附加到此模块。

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

app.controller('controllerName', controllerFunc)

此外,您需要将根模块名称添加到ng-app,例如

ng-app="App"