2017-02-21 147 views
0

角JS控制器功能不工作

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()}}。

爲什麼我沒有得到全名? 我做錯了嗎?

+0

必須聲明的模塊將在'NG-app'或使用'angular.bootstrap '在你的代碼中的某處。否則,你的應用程序不被視爲一個Angular應用程序。 – ValLeNain

回答

0

您錯過了聲明的部分: - 主角模塊。你在ng-app屬性中輸入的那個(如果你不這樣做,你沒有一個Angular應用程序) - 你聲明你的Angular控制器並將它附加到主模塊。

通過

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

而在你的腳本替換

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

,加

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

只是你的函數之前。

此外,我沒有看到你的腳本鏈接到HTML文檔的位置(應該有另一個<script>標記,在加載Angular庫之後,那個)。

0

更改對象屬性fullName這樣:

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

您需要初始化代碼的應用程序模塊,並且附上您控制器這個模塊。

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

app.controller('controllerName', controllerFunc) 

此外,您還需要根模塊名稱添加到NG-應用程式,例如

ng-app="App"