AngularJs scope详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了AngularJs scope详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1985字,纯文字阅读大概需要3分钟。
内容图文
![AngularJs scope详解](/upload/InfoBanner/zyjiaocheng/1323/5a8e5fa60385439983c94a8e9e67613b.jpg)
一.scope是什么?
scope是表达式(expression)的执行上下文,scope可以监测($watch)表达式(expression)的变化和传播事件($emit,$broadcast).
二.scope特性
1.scope提供$watch API,用于监测model的变化
2.scope提供$apply API,将angular环境外的dom操作应用到angular环境上
3.scope通过原型,从parent scope继承属性。child scope可以直接访问parent scope上的属性,parent scope没法直接访问child scope上的属性
三.scope层次结构
每一个angular应用有且仅有一个root scope,但可以拥有多个child scope。
应用可以拥有多个child scope,一些directive会创建新的child scope(如ng-repeat)。当新的scope创建后,它们将作为一个child scope添加到parent scope上,这样创建了一个与它们附属的DOM相似的树结构。
当angular对表达式求值时,它首先查看与当前元素关联的scope的属性。如果没有找到对应的属性,它将会一直向上搜索parent scope,直到到达root scope。在javascript中,这个行为被称为‘原型继承’,child scope 典型继承自它们的parent scope。
四.scope事件传播
scope可以类似于DOM事件的方式进行事件传播。事件可以被broadcast到child scope中或者被emit到parent scope中(当前scope有监听也会执行)
1.parent scope向child scope broadcast 广播事件和child scope向parent scope emit 分发事件示例:
<! DOCTYPE html > < html > < head > < title >angular1.x</title><script type="text/javascript" src="../lib/angular1.6.5.js"></script></head><body ng-app="app"><div ng-controller="parent"> {{count}} <div ng-click="$broadcast(‘toChild‘)">向子元素broadcast事件</div><ul ng-controller="child"> {{count1}} <li ng-click="$emit(‘toParent‘)" ng-repeat="item in [1,2,3,4,5,6,7]">{{item}}</li></ul></div><script type="text/javascript">var app = angular.module(‘app‘,[]); app.controller(‘parent‘,[‘$scope‘,function($scope){ $scope.count =1; $scope.$on(‘toParent‘,function(){ //child scope $emit向上分发的监听 $scope.count++; }); $scope.$on(‘toChild‘,function(){ //当前scope有监听,也会执行 $scope.count++; }) }]); app.controller(‘child‘,[‘$scope‘,function($scope){ $scope.count1 =1; $scope.$on(‘toChild‘,function(){ //parent scope $broadcast向下广播的监听 $scope.count1++; }) }]); </script></body></html>
该示例中,点击li 父元素的count会+1;点击‘向子元素broadcast事件’,父count和子的count1页也会+1,至于父的count怎么会加1是因为当前scope中有 toChild监听。
四.scope的生命周期
原文:http://www.cnblogs.com/erduyang/p/7501354.html
内容总结
以上是互联网集市为您收集整理的AngularJs scope详解全部内容,希望文章能够帮你解决AngularJs scope详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。