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屬性