zoukankan      html  css  js  c++  java
  • 控制器及其中$scope

    AngularJS控制器用来控制AngularJS applications的数据

    AngularJS控制器就是普通的JavaScript对象


    AngularJS控制器

      AngularJS applications通过控制器进行控制。

      ng-controller指令定义了一个application的控制器。

      一个控制器就是一个JavaScript对象,它可以通过标准的JavaScript对象构造函数来创建。

    复制代码
    <div ng-app="myApp" ng-controller="myCtrl">
    
    First Name: <input type="text" ng-model="firstName"><br>
    Last Name: <input type="text" ng-model="lastName"><br>
    <br>
    Full Name: {{firstName + " " + lastName}}
    
    </div>
    
    <script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
        $scope.firstName = "John";
        $scope.lastName = "Doe";
    });
    </script>
    复制代码

    运行

    代码解释:

      AngularJS application通过ng-app="myApp"来定义。该application的有效作用域处于ng-app所在的<div>中。

      ng-controller="myCtrl"属性即一个AngularJS指令,它定义了一个控制器。

      myCtrl函数是一个普通的JavaScript函数。

      AngularJS使用$scope对象来调用控制器。

      在AngularJS中,$scope是一个application对象(即application变量和函数的所有者)。

      控制器包含两个属性(或者叫变量):firstNamelastName。它们被附加到$scope对象上。

      ng-model指令将input标签的值绑定到控制器的属性上(firstName和lastName)。


    控制器的方法

      上面的例子展示了控制器对象包含两个属性:lastName和firstName。

      控制器也可以包含方法(将函数赋值给变量):

    复制代码
    <div ng-app="myApp" ng-controller="personCtrl">
    
    First Name: <input type="text" ng-model="firstName"><br>
    Last Name: <input type="text" ng-model="lastName"><br>
    <br>
    Full Name: {{fullName()}}
    
    </div>
    
    <script>
    var app = angular.module('myApp', []);
    app.controller('personCtrl', function($scope) {
        $scope.firstName = "John";
        $scope.lastName = "Doe";
        $scope.fullName = function() {
            return $scope.firstName + " " + $scope.lastName;
        }
    });
    </script>
    复制代码

    运行


    将控制器放在外部文件中

      在大型应用中,常常会将控制器代码写在外部文件中。

      将<script>标签中的代码拷贝到personController.js外部文件中:

    复制代码
    <div ng-app="myApp" ng-controller="personCtrl">
    
    First Name: <input type="text" ng-model="firstName"><br>
    Last Name: <input type="text" ng-model="lastName"><br>
    <br>
    Full Name: {{firstName + " " + lastName}}
    
    </div>
    
    <script src="personController.js"></script>
    复制代码

    运行


    另一个例子

      创建一个新的控制器文件并命名为namesController.js:

    复制代码
    angular.module('myApp', []).controller('namesCtrl', function($scope) {
        $scope.names = [
            {name:'Jani',country:'Norway'},
            {name:'Hege',country:'Sweden'},
            {name:'Kai',country:'Denmark'}
        ];
    });
    复制代码

      然后再application中使用这个控制器文件:

    复制代码
    <div ng-app="myApp" ng-controller="namesCtrl">
    
    <ul>
      <li ng-repeat="x in names">
        {{ x.name + ', ' + x.country }}
      </li>
    </ul>
    
    </div>
    
    <script src="namesController.js"></script>
    复制代码

    运行

    http://www.cnblogs.com/jaxu/p/4487781.html

  • 相关阅读:
    VMwareTools安装笔记
    Oracle常用命令(持续更新)
    window常用命令(持续更新)
    Oracle 中 sys和system帐号的区别
    决策树——排序算法的理论下界
    插入、选择、冒泡、梳排序性能比较
    插入、选择、冒泡排序的综述
    绝知此事要躬行之——插入排序
    Tree 和ls 的使用
    用户目录
  • 原文地址:https://www.cnblogs.com/dlgood/p/7421967.html
Copyright © 2011-2022 走看看