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

 更新时间:2016年10月25日 09:21:12   投稿:jingxian  
下面小编就为大家带来一篇angularJs指令的Scope(作用域)介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

1.scope = false

JS 代码:

html 代码:

result:

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

2. scope=true

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

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

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

3. scope={}

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

JS代码:

html代码:

result:

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

scope: {@=&}

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

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

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

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

相关文章

  • 谈谈AngularJs中的隐藏和显示

    谈谈AngularJs中的隐藏和显示

    本文给大家介绍angularjs 隐藏和显示,对angularjs 隐藏和显示相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • Angular.js之作用域scope''@'',''='',''&''实例详解

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

    这篇文章主要介绍了Angular.js之作用域scope'@','=','&'实例详解,需要的朋友可以参考下
    2017-02-02
  • 让angularjs支持浏览器自动填表

    让angularjs支持浏览器自动填表

    简单来说Angular.js是google开发者设计和开发的一套前端开发框架,帮助你简化前端开发的负担。当然,这里有很多其它的前端开发框架,但是如何选择合适的前端框架对于我们这些开发人员来说就不是那么容易了!
    2014-11-11
  • AngularJS与后端php的数据交互方法

    AngularJS与后端php的数据交互方法

    今天小编就为大家分享一篇AngularJS与后端php的数据交互方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • AngularJS解决ng界面长表达式(ui-set)的方法分析

    AngularJS解决ng界面长表达式(ui-set)的方法分析

    这篇文章主要介绍了AngularJS解决ng界面长表达式(ui-set)的方法,通过具体问题的分析并结合实例形式给出了AngularJS长表达式的相关使用技巧,需要的朋友可以参考下
    2016-11-11
  • 利用angular自动编译andriod APK的绕坑经历分享

    利用angular自动编译andriod APK的绕坑经历分享

    这篇文章主要给大家介绍了关于如何利用angular自动编译andriod APK的绕坑经历,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者使用angular具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • AngularJS 教程及实例代码

    AngularJS 教程及实例代码

    AngularJS 通过新的属性和表达式扩展了 HTML。AngularJS 可以构建一个单一页面应用程序(SPAs:Single Page Applications)。本文给大家介绍angularjs 的相关知识,感兴趣的朋友一起看看吧
    2017-10-10
  • 详解如何在Angular中使用环境变量

    详解如何在Angular中使用环境变量

    如果你正在构建一个使用 API 的应用程序,你会想在开发过程中使用测试环境的 API 密钥,而在生产环境中使用生产环境的 API 密钥,在本教程中,你将学习如何在 Angular 中使用环境变量,需要的朋友可以参考下
    2024-02-02
  • 使用Angular CLI快速创建Angular项目的一些基本概念和写法小结

    使用Angular CLI快速创建Angular项目的一些基本概念和写法小结

    这篇文章主要介绍了使用Angular CLI快速创建Angular项目的一些基本概念和写法小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Angular表格神器ui-grid应用详解

    Angular表格神器ui-grid应用详解

    这篇文章主要为大家详细介绍了Angular表格神器ui-grid应用的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09

最新评论