zoukankan      html  css  js  c++  java
  • AngularJS模块之$scope

    Angular中创建一个模块:

    angular.module("myApp",[]).
    controller("myController",function("$scope"){
       $scope.name="my name"; 
    })
    <div ng-app="myApp">
    <div ng-controller="MyController">
    <h1>Hello {{ name }}</h1>
    </div>
    </div>

    ng-controller指令为DOM元素创建了一个新的$scope对象,并将它嵌套在$rootScope中,$rootScope相当于最顶层的全局变量。、

    $scope的生命周期:

    当Angular关心的事件发生在浏览器中时,比如用户在通过ng-model属性监控的输入字段中输入,或者带有ng-click属性的按钮被点击时,Angular的事件循环都会启动。这个事件将在Angular执行上下文中处理。

    每当事件被处理时,$scope就会对定义的表达式求值。此时事件循环会启动,并且Angular应用会监控应用程序内的所有对象,脏值检测循环也会运行。

    1.创建

    在创建控制器或指令时,AngularJS会用$injector创建一个新的作用域,并在这个新建的控
    制器或指令运行时将作用域传递进去。

    2.链接

    当Angular开始运行时,所有的$scope对象都会附加或者链接到视图中。所有创建$scope对
    象的函数也会将自身附加到视图中。这些作用域将会注册当Angular应用上下文中发生变化时需
    要运行的函数。

    这些函数被称为$watch函数,Angular通过这些函数获知何时启动事件循环。

    3.更新

    当事件循环运行时,它通常执行在顶层$scope对象上(被称作$rootScope),每个子作用域
    都执行自己的脏值检测。每个监控函数都会检查变化。如果检测到任意变化,$scope对象就会触
    发指定的回调函数。

    4.销毁

    当一个$scope在视图中不再需要时,这个作用域将会清理和销毁自己。
    尽管永远不会需要清理作用域(因为Angular会为你处理),但是知道是谁创建了这个作用域
    还是有用的,因为你可以使用这个$scope上叫做$destory()的方法来清理这个作用域。

  • 相关阅读:
    BZOJ1691: [Usaco2007 Dec]挑剔的美食家
    BZOJ1584: [Usaco2009 Mar]Cleaning Up 打扫卫生
    BZOJ3057: 圣主的考验
    BZOJ1770: [Usaco2009 Nov]lights 燈
    1710: [Usaco2007 Open]Cheappal 廉价回文
    「Poetize7」电话线路
    「Poetize6」Candle
    「Poetize5」水叮当的舞步
    解题:CF983A Finite or not
    解题:POI 2013 Triumphal arch
  • 原文地址:https://www.cnblogs.com/hutuzhu/p/4353021.html
Copyright © 2011-2022 走看看