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 相关文章推荐
ECMAScript 创建自己的js类库
Nov 22 Javascript
节点的插入之append()和appendTo()的用法介绍
Jan 13 Javascript
JS控制文本域只读或可写属性的方法
Jun 24 Javascript
JavaScript导航脚本判断当前导航
Jul 12 Javascript
Javascript中级语法快速入手
Jul 30 Javascript
JavaScript实战(原生range和自定义特效)简单实例
Aug 21 Javascript
js实现带三角符的手风琴效果
Mar 01 Javascript
Axios学习笔记之使用方法教程
Jul 21 Javascript
浅谈Vue.js组件(二)
Apr 09 Javascript
使用JS来动态操作css的几种方法
Dec 18 Javascript
JS async 函数的含义和用法实例总结
Apr 08 Javascript
JS倒计时两种实现方式代码实例
Jul 27 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
世界上第一台立体声收音机
2021/03/01 无线电
什么是MVC,好东西啊
2007/05/03 PHP
php学习笔记 类的声明与对象实例化
2011/06/13 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
js打造数组转json函数
2015/01/14 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
vue路由的配置和页面切换详解
2020/09/09 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
Python连接phoenix的方法示例
2017/09/29 Python
彻底理解Python中的yield关键字
2019/04/01 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
学风建设演讲稿
2014/09/12 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
就业意向协议书
2015/01/29 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL