关于angularJs指令的Scope(作用域)介绍


Posted in Javascript onOctober 25, 2016

每当一个指令被创建的时候,都会有这样一个选择,是继承自己的父作用域(一般是外部的Controller提供的作用域或者根作用域($rootScope)),还是创建一个新的自己的作用域,当然AngularJS为我们指令的scope参数提供了三种选择,分别是:false,true,{};默认情况下是false。

1.scope = false

JS 代码:

关于angularJs指令的Scope(作用域)介绍

html 代码:

关于angularJs指令的Scope(作用域)介绍

result:

关于angularJs指令的Scope(作用域)介绍

修改文本框的内容,两个名字都会变,实际上修改的是同一个$scope的name属性。

2. scope=true

修改上面的JS代码,将指令中的:scope:false修改为scope:true

然后我们再试着在我们的input输入框中写一些字符串,会发现,指令中的那个name发生了变化,但是指令外的那个name却没有发生变化,这说明了一个问题。

当我们将scope设置为true的时候,我们就新创建了一个作用域,只不过这个作用域是继承了我们的父作用域;我觉得可以这样理解,我们新创建的作用域是一个新的作用域,只不过在初始化的时候,用了父作用域的属性和方法去填充我们这个新的作用域。它和父作用域不是同一个作用域。
当我们将scope设置为false的时候,我们创建的指令和父作用域(其实是同一个作用域)共享同一个model模型,所以在指令中修改模型数据,它会反映到父作用域的模型中。

3. scope={}

当我们将scope设置为{}时,意味着我们创建的一个新的与父作用域隔离的新的作用域,这使我们在不知道外部环境的情况下,就可以正常工作,不依赖外部环境。

JS代码:

关于angularJs指令的Scope(作用域)介绍

html代码:

关于angularJs指令的Scope(作用域)介绍

result:

关于angularJs指令的Scope(作用域)介绍

修改文本框内容只有指令中的名字会被修改.

scope: {@=&}

@
这是一个单项绑定的前缀标识符
使用方法:在元素中使用属性,好比这样<div my-directive my-name="{{name}}"></div>,注意,属性的名字要用-将两个单词连接,因为是数据的单项绑定所以要通过使用{{}}来绑定数据。

=
这是一个双向数据绑定前缀标识符
使用方法:在元素中使用属性,好比这样<div my-directive age="age"></div>,注意,数据的双向绑定要通过=前缀标识符实现,所以不可以使用{{}}。

&
这是一个绑定函数方法的前缀标识符
使用方法:在元素中使用属性,好比这样<div my-directive change-my-age="changeAge()"></div>,注意,属性的名字要用-将多个个单词连接。

以上就是小编为大家带来的关于angularJs指令的Scope(作用域)介绍全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
使javascript也能包含文件
Oct 26 Javascript
jQuery针对各类元素操作基础教程
Aug 29 Javascript
js图片实时加载提供网页打开速度
Sep 11 Javascript
Bootstrap3制作图片轮播效果
May 12 Javascript
JavaScript 函数的定义-调用、注意事项
Apr 16 Javascript
vue2的todolist入门小项目的详细解析
May 11 Javascript
深究AngularJS之ui-router详解
Jun 13 Javascript
Vue.directive()的用法和实例详解
Mar 04 Javascript
JavaScript 五大常见函数
Mar 23 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
Oct 08 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
5种 JavaScript 方式实现数组扁平化
Oct 05 Javascript
javascript 中的事件委托详解
Oct 25 #Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
Oct 25 #Javascript
分分钟玩转Vue.js组件
Oct 25 #Javascript
谈谈target=_new和_blank的不同之处
Oct 25 #Javascript
js实现上传图片预览方法
Oct 25 #Javascript
微信小程序(应用号)开发新闻客户端实例
Oct 24 #Javascript
微信小程序 倒计时组件实现代码
Oct 24 #Javascript
You might like
制作美丽的拉花
2021/03/03 冲泡冲煮
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
JavaScript Array扩展实现代码
2009/10/14 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
Vue.js组件高级特性实例详解
2018/12/24 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
Python实现发送email的几种常用方法
2014/08/18 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
Python 实现链表实例代码
2017/04/07 Python
python操作列表的函数使用代码详解
2017/12/28 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
opencv python如何实现图像二值化
2020/02/03 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
就业自荐信
2013/12/04 职场文书
外贸英语专业求职信范文
2013/12/25 职场文书
给女朋友的道歉信
2014/01/10 职场文书
2014年班主任自我评价范文
2014/04/23 职场文书
节能环保口号
2014/06/12 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
歌舞青春观后感
2015/06/10 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
2016年企业先进员工事迹材料
2016/02/25 职场文书
go xorm框架的使用
2021/05/22 Golang