一、方法概覽 directive(name, directiveFactory) component(name, options) aHrefSanitizationWhitelist([regexp]); imgSrcSanitizationWhitelist([regexp]); debugIn ...
一、方法概覽
-
directive(name, directiveFactory)
-
component(name, options)
-
aHrefSanitizationWhitelist([regexp]);
-
imgSrcSanitizationWhitelist([regexp]);
-
debugInfoEnabled([enabled]);
-
strictComponentBindingsEnabled([enabled]);
-
onChangesTtl(limit);
-
commentDirectivesEnabled(enabled);
-
cssClassDirectivesEnabled(enabled);
二、方法解釋
1、directive(name, directiveFactory)
使用compiler註冊一個指令
參數:
name:string,指令的名稱。
directiveFactory
:function,指令構造工廠函數。
return:
返回自身,以供鏈式調用。
2、component(name, options)
使用compiler註冊一個組件,組件是一種特殊的指令,它自包含了UI,並且總是預設使用獨立作用域和restrict: 'E'。組件的定義是簡單的,options是一個包含了一系列屬性的對象,並且總是強制使用最好的實踐,例如controllerAS:$ctrl。
參數:
name:組件的名稱。
options:一個對象,包含以下可選的屬性。
controller:string|function,指令的控制器,字元串代表一個被註入到該模塊的控制器的名稱。
controllerAS:string,控制器的一個引用,預設是’$ctrl‘,如果被定義則scope上會有一個該名稱的屬性,例如scope.$ctrl,那麼我們在html中就可以這樣使用控制器中的屬性,例如<div>{{$ctrl.name}}<div>
template:string|function,組件的模板,如果是函數,則函數有以下兩個參數,
$element:當前元素。
$attrs:當前元素屬性對象。
templateUrl:string|function,組件模板的路徑,如果是函數,則參數和以上template相同。
bindings:一個對象,用於元素的屬性和組件屬性之間的綁定,並且綁定的值總是綁定到組件的控制器上而不是scope上,詳情請查閱bingToController。
transclude:boolean,是否允許嵌入內容,預設false。
require:一個對象,需要其他指令的控制器被綁定到組件的控制器,對象的鍵指向屬性名稱,對象的值是其他指令控制器的名稱。
$...:額外的屬性被添加到指令工廠函數和控制器構造器函數。(這被使用於為組件路由提供註解)
return:
返回自身,用於鏈式調用。
3、aHrefSanitizationWhitelist([regexp])
恢復或者覆蓋白名單urls安全列表的正則表達式,主要用於阻止通過html鏈接進行的xss攻擊。任何將要通過數據綁定到a[href]的urls首先都要經過初始化並轉化為一個絕對url,如果這個url匹配aHrefSanitizationWhitelist
的正則表達式規則,則會被添加到DOM中,否則轉化後的url將會加上’unsafe:‘首碼後才能被加入到DOM中。
參數:
regexp:RegExp,新的白名單正則表達式。
return:
如果參數不存在則返回現在的正則表達式,否則返回自身以供鏈式調用。
4、imgSrcSanitizationWhitelist([regexp])
和以上aHrefSanitizationWhitelist
類似,不過這個是設置img[src]的白名單正則表達式。
5、debugInfoEnabled([enabled])
主要用於開啟和關閉運行時的debug信息,預設是true,例如為綁定的元素添加以下信息:
'ng-binding' CSS Class。
’ng-scope‘和’ng-isolated-scope‘ CSS Class。
’$binding‘一個數組,包含了綁定的表達式。
占位符註釋將會包含是什麼指令或者binding引發了這個占位符,例如<!-- ngIf: shouldShow() -->
參數:
enabled:boolean
return:
如果包含參數則返回自身,否則返回現在的debug狀態。
6、strictComponentBindingsEnabled([enabled])
是否開啟嚴格的component bindings檢查,如果開啟,則除了那些包含了?的bindings,全部都要求在html標簽中指定相應的屬性。
預設false
參數和返回值和以上debug相同。
7、onChangesTtl(limit)
在複雜的應用程式中,$onChanges鉤子和bindings之間的依賴性可能會導致對這些鉤子的多個調用迭代,該函數可以設置迭代的次數。
預設是10次。
參數:
limit:integer,迭代的次數。
return:
如果設置了limit則返回自身,否則返回已經設置的limit。
8、commentDirectivesEnabled(enabled)
表明是否編譯註釋形式的指令,如果禁用將會提高編譯的性能,因為編譯器不需要去檢查註釋當編譯指令的時候。
預設是true,開啟。
參數和返回值和onChangesTtl(limit)
類似。
9、cssClassDirectivesEnabled(enabled)
表明是否編譯Class形式的指令,如果禁用將會提高編譯的性能,因為編譯器不需要去檢查Class當編譯指令的時候。
預設是true,開啟。
參數和返回值和onChangesTtl(limit)
類似。