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 相关文章推荐
In Javascript Class, how to call the prototype method.(three method)
Jan 09 Javascript
JScript中的undefined和&quot;undefined&quot;的区别
Mar 08 Javascript
一个JS小玩意 几个属性相加不能超过一个特定值.
Sep 29 Javascript
JavaScript继承方式实例
Oct 29 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
Sep 25 Javascript
关于Jquery中的事件绑定总结
Oct 26 Javascript
ES6中Class类的静态方法实例小结
Oct 28 Javascript
vue组件实现可搜索下拉框扩展
Oct 23 Javascript
如何进行微信公众号开发的本地调试的方法
Jun 16 Javascript
如何在vue中使用jointjs过程解析
May 29 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
element-ui中el-upload多文件一次性上传的实现
Dec 02 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
php+mysql写的简单留言本实例代码
2008/07/25 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
json 实例详细说明教程
2009/10/31 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
2014/09/11 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
Pyramid添加Middleware的方法实例
2013/11/27 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
python解决字符串倒序输出的问题
2018/06/25 Python
Python中GIL的使用详解
2018/10/03 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
非常详细的C#面试题集
2016/07/13 面试题
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
出纳员岗位职责
2014/03/13 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python
使用feign服务调用添加Header参数
2021/06/23 Java/Android
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server