angular內置provider之$compileProvider

1、方法概覽

  1. directive(name, directiveFactory)css

  2. component(name, options)html

  3. aHrefSanitizationWhitelist([regexp]);正則表達式

  4. imgSrcSanitizationWhitelist([regexp]);數組

  5. debugInfoEnabled([enabled]);安全

  6. strictComponentBindingsEnabled([enabled]);xss

  7. onChangesTtl(limit);函數

  8. commentDirectivesEnabled(enabled);性能

  9. cssClassDirectivesEnabled(enabled);ui

2、方法解釋

一、directive(name, directiveFactory)

使用compiler註冊一個指令url

參數:

name:string,指令的名稱。

directiveFactory:function,指令構造工廠函數。

return:

返回自身,以供鏈式調用。

 

二、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:

返回自身,用於鏈式調用。

 

三、aHrefSanitizationWhitelist([regexp])

恢復或者覆蓋白名單urls安全列表的正則表達式,主要用於阻止經過html連接進行的xss攻擊。任何將要經過數據綁定到a[href]的urls首先都要通過初始化並轉化爲一個絕對url,若是這個url匹配aHrefSanitizationWhitelist的正則表達式規則,則會被添加到DOM中,不然轉化後的url將會加上’unsafe:‘前綴後才能被加入到DOM中。

參數:

regexp:RegExp,新的白名單正則表達式。

return:

若是參數不存在則返回如今的正則表達式,不然返回自身以供鏈式調用。

 

四、imgSrcSanitizationWhitelist([regexp])

和以上aHrefSanitizationWhitelist相似,不過這個是設置img[src]的白名單正則表達式。

 

五、debugInfoEnabled([enabled])

主要用於開啓和關閉運行時的debug信息,默認是true,例如爲綁定的元素添加如下信息:

'ng-binding' CSS Class。

’ng-scope‘和’ng-isolated-scope‘ CSS Class。

’$binding‘一個數組,包含了綁定的表達式。

佔位符註釋將會包含是什麼指令或者binding引起了這個佔位符,例如<!-- ngIf: shouldShow() -->

參數:

enabled:boolean

return:

若是包含參數則返回自身,不然返回如今的debug狀態。

 

六、strictComponentBindingsEnabled([enabled])

是否開啓嚴格的component bindings檢查,若是開啓,則除了那些包含了?的bindings,所有都要求在html標籤中指定相應的屬性。

默認false

參數和返回值和以上debug相同。

 

七、onChangesTtl(limit)

在複雜的應用程序中,$onChanges鉤子和bindings之間的依賴性可能會致使對這些鉤子的多個調用迭代,該函數能夠設置迭代的次數。

默認是10次。

參數:

limit:integer,迭代的次數。

return:

若是設置了limit則返回自身,不然返回已經設置的limit。

 

八、commentDirectivesEnabled(enabled)

代表是否編譯註釋形式的指令,若是禁用將會提升編譯的性能,由於編譯器不須要去檢查註釋當編譯指令的時候。

默認是true,開啓。

參數和返回值和onChangesTtl(limit)相似。

 

九、cssClassDirectivesEnabled(enabled)

代表是否編譯Class形式的指令,若是禁用將會提升編譯的性能,由於編譯器不須要去檢查Class當編譯指令的時候。

默認是true,開啓。

參數和返回值和onChangesTtl(limit)相似。

相關文章
相關標籤/搜索