Angular.js之作用域scope'@','=','&'实例详解


Posted in Javascript onFebruary 28, 2017

什么是scope

AngularJS 中,作用域是一个指向应用模型的对象,它是表达式的执行环境。作用域有层次结构,这个层次和相应的 DOM 几乎是一样的。作用域能监控表达式和传递事件。

在 HTML 代码中,一旦一个 ng-app 指令被定义,那么一个作用域就产生了,由 ng-app 所生成的作用域比较特殊,它是一个根作用域($rootScope),它是其他所有$Scope 的最顶层。

除了用 ng-app 指令可以产生一个作用域之外,其他的指令如 ng-controller,ng-repeat 等都会产生一个或者多个作用域。此外,还可以通过 AngularJS 提供的创建作用域的工厂方法来创建一个作用域。这些作用域都拥有自己的继承上下文,并且根作用域都为$rootScope。

在生成一个作用域之后,在编写 AngularJS 代码时,$scope 对象就代表了这个作用域的数据实体,我们可以在$scope 内定义各种数据类型,之后可以直接在 HTML 中以 {{变量名}} 方式来让 HTML 访问到这个变量。

下面通过实例代码给大家介绍angular.js之作用域scope'@','=','&'

<!doctype html> 
<html ng-app='myApp'> 
<head> 
</head> 
<body> 
<script src="http://cdn.bootcss.com/angular.js/1.4.6/angular.js"></script>

<script src="https://cdn.bootcss.com/jquery/1.8.3/jquery.js"></script>

<div ng-controller="listCtrl" ng-app="myApp"> 


<input type="text" ng-model="color"> 


<!-- <span kid hd-color="color"></span> --> <!--@是单项数据绑定,hd-color="{{color}}"作用域隔离,在view中是以模板“{{}}”的形式;=双向绑定,hd-color="color",在view中直接以属性的形式出现-->


<div kid color="callback()"></div>

</div>
<script type="text/javascript">


var myApp=angular.module('myApp',[]); 


myApp.controller('listCtrl',function($scope){ 



$scope.color="red"; 



$scope.callback=function(){




return 'a web developer !';



}


}); 


myApp.directive('kid',function(){ 



return { 




restrict:'AE', 




//template:'<div style="color:{{color}}">@符号的学习</div>' , 




template:'<h1>{{color()}}</h1>', 




scope:{ /*color:"=hdColor"*//* "@hdColor" */color:'&'} //通过&属性名来调用控制器的函数



} 


}); 
</script>
</div> 
</body>
</html>

以上所述是小编给大家介绍的Angular.js之作用域scope'@','=','&'实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
070823更新的一个[消息提示框]组件 兼容ie7
Aug 29 Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
Jul 31 Javascript
JS中操作JSON总结
Dec 06 Javascript
了不起的node.js读书笔记之例程分析
Dec 22 Javascript
jquery.cookie实现的客户端购物车操作实例
Dec 24 Javascript
详解Angularjs中的依赖注入
Mar 11 Javascript
jquery点击改变class并toggle的实现代码
May 15 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
Nov 05 Javascript
JS与HTML结合实现流程进度展示条思路详解
Sep 03 Javascript
详解vue-cli3多页应用改造
Jun 04 Javascript
js实现树形数据转成扁平数据的方法示例
Feb 27 Javascript
react国际化化插件react-i18n-auto使用详解
Mar 31 Javascript
jQuery EasyUI ProgressBar进度条组件
Feb 28 #Javascript
jQuery实现ajax无刷新分页页码控件
Feb 28 #Javascript
jQuery EasyUI Panel面板组件使用详解
Feb 28 #Javascript
AngularJS constant和value区别详解
Feb 28 #Javascript
微信小程序左右滑动切换页面详解及实例代码
Feb 28 #Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
Feb 28 #Javascript
Vue.js父与子组件之间传参示例
Feb 28 #Javascript
You might like
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
Js注册协议倒计时的小例子
2013/06/24 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
JS实现可用滑块滑动的缓动图代码
2019/09/01 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
Python中实现对list做减法操作介绍
2015/01/09 Python
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
python如何对实例属性进行类型检查
2018/03/20 Python
Django objects的查询结果转化为json的三种方式的方法
2018/11/07 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Python实现对adb命令封装
2020/03/06 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
如何卸载python插件
2020/07/08 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
开业主持词
2014/03/21 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL