scope:false
(默认值):不会为绑定该指令的元素单首创建Scope范围。即该元素仍然处于原来的Scope范围。绑定指令前:Scope1,绑定指令后:Scope1数组
scope:true
将为指令的模版建立一个原型继承自其父级的新子范围。即绑定该指令的元素的Scope范围的新子范围ChildScope。若是同一元素上的多个指令都是scope:true
,则只会建立一个ChildScope。绑定指令前:Scope1,绑定指令后:Scope1.ChildScope函数
scope:{...}
为指令的模板建立一个新的“隔离”范围。它不会从其父范围原型继承。这在建立可重用组件时颇有用,这些组件不该该意外地读取或修改父范围中的数据。请注意,一个没有template或templateUrl属性的指令的隔离scope范围不会应用到子元素上。scope:{info:'=info'}
双向绑定scope:{info:'@infoStr'}
单项绑定 字符串类型scope:{func:'&func'}
双向绑定函数类型绑定指令前:Scope1, 绑定指令后:Scope2。Scope1和Scope2相互独立。双向绑定
scope:false
;scope:true
;scope:{...}
与任意个 scope:false
的组合;scope:{...};
;scope:true;
和scope:{...};
的组合。scope:{...}
,则该template模版的Scope就是前面提到的独立的Scope2范围;scope:false
,则该template模版的Scope范围就是前面提到的Scope1 ```,指令对应模版的Scope范围就是这个独立的Scope2范围scope:true
,则该template的Scope范围就是Scope1.ChildScope,而且会集合全部指令中去扩展的Scope属性