源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

详解Angular.js指令中scope类型的几种特殊情况

  • 时间:2021-11-15 09:38 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:详解Angular.js指令中scope类型的几种特殊情况
[b]前言[/b] 大家都知道在默认情况下,指令应该访问父作用域.如果我们对指令暴露了父控制器的scope,那么指令就可以自由的修改scope属性.在一些情况下,你的指令可能想要添加一些只有内部可以使用的属性和函数,如果我们都在父作用域中完成,可能会污染了父作用域,因此,我们有以下两种选择: 使用父作用域-如果不需要操作父作用域属性,不需要一个新的作用域,可以直接使用父作用域 [code]scope:false[/code] 一个子作用域-这个作用域会原型继承父作用域 [code]scope:true[/code] 一个隔离的作用域-一个全新的、不继承、独立存在的作用域 [code]scope:{}[/code] 作用域可以由指令定义对象中的scope属性定义,下面是关于scope属性的一些说明: [b]指令中的scope常见的类型[/b] = [list=1] [*]'=',用于子作用域与父作用域双向绑定.使用这种方法可以将一个实际的作用域模型赋值给一个属性,而不是一个普通的字符串.效果是你可以传递复杂的数据模型,例如数组/对象等到隔离作用域.父作用域或者子作用域属性发生了改变,会相应影响对方.[/*] [*]'=?',这种情况可以避免父作用域属性中不存在当前属性情况,避免抛出异常.--'If the parent scope property doesn't exist, it will throw a NON_ASSIGNABLE_MODEL_EXPRESSION exception. You can avoid this behavior using `=?` or `=?attr` in order to flag the property as optional.'[/*] [*]'=*',If you want to shallow watch for changes (i.e. $watchCollection instead of $watch) you can use `=*` or `=*attr` (`=*?` or `=*?attr` if the property is optional). [/*] [/list] [b]&[/b] [list=1] [*]'&',用于执行父作用域中的函数. [/*] [/list] [b]@[/b] [list=1] [*]'@',进行单项文本绑定.使用这种方法可以将字符串传递到属性,当父作用域属性发生变化时,隔离作用域模型也发生变化.然而,反之则不成立!你不能通过操纵隔离作用域来改变父作用域.[/*] [/list] [b]总结[/b] 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部