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 相关文章推荐
为Yahoo! UI Extensions Grid增加内置的可编辑器
Mar 10 Javascript
JS解决ie6下png透明的方法实例
Aug 02 Javascript
JavaScript获取table中某一列的值的方法
May 06 Javascript
谈谈JavaScript的New关键字
Aug 26 Javascript
JS实现直接运行html代码的方法
Mar 13 Javascript
js实现下拉框效果(select)
Mar 28 Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 Javascript
angular.js指令中的controller、compile与link函数的不同之处
May 10 Javascript
Node接收电子邮件的实例代码
Jul 21 Javascript
微信小程序template模板与component组件的区别和使用详解
May 22 Javascript
JsonServer安装及启动过程图解
Feb 28 Javascript
为什么推荐使用JSX开发Vue3
Dec 28 Vue.js
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
PHP面向对象编程快速入门
2006/12/14 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
php-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
js innerHTML 改变div内容的方法
2013/08/03 Javascript
使用jquery自定义鼠标样式满足个性需求
2013/11/05 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
jquery css 设置table的奇偶行背景色示例
2014/06/03 Javascript
angularJS中$apply()方法详解
2015/01/07 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
Python做文本按行去重的实现方法
2016/10/19 Python
Python编程scoketServer实现多线程同步实例代码
2018/01/29 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
师范生自我鉴定
2014/03/20 职场文书
《晚上的太阳》教学反思
2014/04/23 职场文书
初中学校军训方案
2014/05/09 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
离婚被告答辩状
2015/05/22 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
go:垃圾回收GC触发条件详解
2021/04/24 Golang