🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
{% raw %} # AngularJS 控制器  AngularJS 控制器 **控制** AngularJS 应用程序的数据。  AngularJS 控制器是常规的 **JavaScript 对象**。 ## AngularJS 控制器 AngularJS 应用程序被控制器控制。 **ng-controller** 指令定义了应用程序控制器。 控制器是 **JavaScript 对象**,由标准的 JavaScript **对象的构造函数** 创建。 控制器的 **$scope** 是控制器所指向的应用程序/HTML 元素。 ## AngularJS 实例 ``` <div ng-app="" ng-controller="personController"> 名: <input type="text" ng-model="person.firstName"><br> 姓: <input type="text" ng-model="person.lastName"><br> <br> 姓名: {{person.firstName + " " + person.lastName}} </div> <script> function personController($scope) {     $scope.person = {         firstName: "John",         lastName: "Doe"     }; } </script> ``` 实例讲解: AngularJS 应用程序由 **ng-app** 定义。应用程序在 &lt;div&gt; 内运行。 **ng-controller** 指令把控制器命名为 **object**。 函数 **personController** 是一个标准的 JavaScript **对象的构造函数**。 控制器对象有一个属性:**$scope.person**。 person 对象有两个属性:**firstName** 和 **lastName**。 **ng-model** 指令绑定输入域到控制器的属性(firstName 和 lastName)。 ## 控制器属性 上面的实例演示了一个带有 lastName 和 firstName 这两个属性的控制器对象。 控制器也可以把函数作为对象属性: ## AngularJS 实例 ``` <div ng-app="" ng-controller="personController"> 名: <input type="text" ng-model="person.firstName"><br> 姓: <input type="text" ng-model="person.lastName"><br> <br> 姓名: {{person.fullName()}} </div> <script> function personController($scope) {     $scope.person = {         firstName: "John",         lastName: "Doe",         fullName: function() {             var x;             x = $scope.person;             return x.firstName + " " + x.lastName;         }     }; } </script> ``` ## 控制器方法 控制器也可以带有方法: ## AngularJS 实例 ``` <div ng-app="" ng-controller="personController"> 名: <input type="text" ng-model="person.firstName"><br> 姓: <input type="text" ng-model="person.lastName"><br> <br> 姓名: {{fullName()}} </div> <script> function personController($scope) {     $scope.person = {         firstName: "John",         lastName: "Doe",      };      $scope.fullName = function() {          var x;          x = $scope.person;          return x.firstName + " " + x.lastName;      }; } </script> ``` ## 外部文件中的控制器 在大型的应用程序中,通常是把控制器存储在外部文件中。 只需要把 &lt;script&gt; 标签中的代码复制到名为 personController.js 的外部文件中即可: ## AngularJS 实例 ``` <div ng-app="" ng-controller="personController"> 名: <input type="text" ng-model="person.firstName"><br> 姓: <input type="text" ng-model="person.lastName"><br> <br> 姓名: {{person.firstName + " " + person.lastName}} </div> <script src="personController.js"></script> ``` ## 另一个实例 下面的实例我们将创建一个新的控制器文件: ``` function namesController($scope) {     $scope.names = [         {name:'Jani',country:'Norway'},         {name:'Hege',country:'Sweden'},         {name:'Kai',country:'Denmark'}     ]; } ``` 然后在应用程序中使用这个控制器文件: ## AngularJS 实例 ``` <div ng-app="" ng-controller="namesController"> <ul>   <li ng-repeat="x in names">     {{ x.name + ', ' + x.country }}   </li> </ul> </div> <script src="namesController.js"></script> ``` {% endraw %}