$Scope

Scope(作用域)是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带,用来保存AngularJS Model(模型)的对象。

Scope 是一个对象,有可用的方法和属性。Scope 可应用在视图和控制器上。angularJS中的mvc是借助于$scope实现的。

$scope对象的生命周期处理有四个不同阶段:

  1>.创建

  在创建控制器(Controller)或指令时,AngularJS会用$injector创建一个新的作用域($scope),并在这个新建的控制器(Controller)或指令运行时注入作用域($scope)。

  2>.链接

  当Angular开始运行时,所有的$scope对象都会附加或者链接到视图中。

  所有创建$scope对象的函数也会将自身附加到视图中。

  这些作用域将会注册当Angular应用上下文中发生变化时需要运行的$watch函数。

  3>.更新

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

  4>.销毁

  当一个$scope在视图中不再需要时,这个作用域将会清理和销毁自己。

$rootScope

AngularJS启动并生成视图时,会将根ng-app元素同$rootScope【根作用域】进行绑定。$rootScope是所有$scope对象的最上层。

所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中。

$rootScope 可作用于整个应用中。是各个 controller 中 scope 的桥梁。

用 rootscope 定义的值,可以在各个 controller 中使用。不建议在$rootScope上绑定太多业务逻。

创建控制器时,将 $rootScope 作为参数传递,可在应用中使用:

app.controller('myCtrl', function($scope, $rootScope) {

$scope.text = "Hello AngularJS!";

});

ng-controller指令为这个DOM元素创建了一个新的$scope对象,并将它嵌套在$rootScope中。

$scope与$rootScope具有相同属性或方法时,$scope将覆盖$rootScope中相同属性或方法。

最新文章

  1. 学习javascript数据结构(三)——集合
  2. Python版本共存之道:virtualenv和virtualenvwrapper
  3. Windows添加和取消右键管理员权限
  4. JPA使用入门
  5. Mini projects #3 ---- Stopwatch: The Game
  6. 泊松回归(Poisson Regression)
  7. 不是语言之争--Go vs Erlang
  8. nodepad + 插件
  9. scala pattern matching
  10. Oracle 一次 锁表 处理小记
  11. GCDTimer
  12. JDK自带的监控分析工具JConsole
  13. url,href,src之间的区别
  14. 4年前端、2年CTO:一个非科班程序员的真实奋斗史
  15. C#操作Access数据库中遇到的问题(待续)
  16. ABP之展现层(导航菜单)
  17. 金九银十跳槽季,程序员面试点解析之Java专场
  18. Eclipse无法编译,提示错误“找不到或者无法加载主类”解决方法
  19. MFC Timer定时器
  20. [置顶] Linux下发布QT程序

热门文章

  1. Spring Boot技术栈博客笔记(1)
  2. spring mvc: xml练习
  3. centos7 配置 NFS mount挂载服务器
  4. Ansible 小手册系列 十五(Blocks 分组)
  5. 【hive】子查询
  6. C++进阶1模板的使用
  7. hdu 6114 chess(排列组合)
  8. LeetCode OJ:Jump Game II(跳跃游戏2)
  9. iOS如何直接跳转到App Store
  10. Linux .o a .so .la .lo的区别