angularjs笔记
  • Introduction
  • 依赖注入
  • 作用域
  • 数据绑定
    • 控制器->模板->控制器->模板
  • 多个控制器
  • $scope对象
    • $apply方法、$digest方法
    • $watch方法
    • 示例:购物车
  • 模块和控制器
  • $provide对象的provider、factory、service方法
    • 多个控制器内共享数据
  • 过滤器(Filters)
    • number、currency、date
    • limitTo、lowercase、uppercase
    • filter、orderBy、json
    • 示例:产品列表
    • 自定义过滤器
  • 控制器(controller)
    • 显式和隐式依赖注入
  • 指令
    • Angular 内置指令
    • Angular 自定义指令
      • restrict、template、replace属性
      • templateUrl属性
      • transclude、priority、terminal属性
      • compile && link属性
      • controller && controllAs属性
      • require属性
      • scope属性
  • Module里其他方法
    • constant、value、run方法
  • Form表单
    • 示例:注册页
  • XHR和服务器端的通信
    • $http
  • JavaScript基础
    • .isFunction是否为函数
  • 资料链接
  • 功能组件
    • Tooltip
    • CSV
  • 其他
    • $watchCollection
    • $controller 继承
    • 两个对象合并
    • 页面关闭
    • AngularJs 时间格式化处理
    • 数据的本地存储
    • 页面的URL
Powered by GitBook
On this page
  • 什么是 scope
  • scope的特性
  • scope生命周期

Was this helpful?

$scope对象

什么是 scope

  • scope是一个指向应用model的object,也是表达式的执行上下文。

  • scope被放置于一个类似应用的DOM结构的层次结构中。

scope的特性

  • scope提供$watch API,⽤用于监测model的变化。

  • scope提供$apply,在"Angular realm"(controller、server、angular event handler)之外,从系统到视图传播任何model的变化。

  • scope可以在提供到被共享的model属性的访问的时候,被嵌入到独立的应⽤用组件中。scope通过(原型),从parent scope中继承属性。

scope生命周期

  1. 用户请求应用起始页

  2. angular 被加载,查找ng-app指令

  3. Angular 遍历模版,查找指令

  4. controller被启用,$scope被注入进来

  5. 在模版link过程中,指令在scope中注册$watch。这些watch将会被⽤用作向DOM传播model的值。

  6. 当在controller中做同步的⼯工作时angular API 已经隐式地做了$apply操作

  7. 在$apply的结尾,angular会在root scope执行一个$digest周期,这将会传播到所有child scope中。在$digest周期中,所有注册了$watch的表达式或者function都会被检查,判断model是否发生了改变,如果改变发生了,那么对应的$watch监听器将会被调用。

  8. 当child scope不再是必须的时候,child scope的产⽣生者有责任通过scope.$destroy() API销毁它们(child scope)。这将会停止$digest的调用传播传播到child scope中,让被child scope model使用的内存可以被gc回收。

Previous多个控制器Next$apply方法、$digest方法

Last updated 6 years ago

Was this helpful?