Angualr中的裝飾器是一個函數,它將元數據添加到類、類成員(屬性、方法)和函數參數bootstrap
用法:要想用裝飾器,把它放到被裝飾對象的上面或作左面ide
1.類裝飾器:函數
類裝飾器應用於類構造函數,能夠用來監控、修改或替換類定義對象
類裝飾器表達式會在運行時看成函數被調用,類的構造函數做爲惟一的參數繼承
@Component 標記類做爲組件並收集組件配置元數據(繼承Directive)索引
@Directive 標記類做爲指令並收集組件配置元數據事件
聲明當前類時一個指令,並提供關於該指令的元數據ip
@Pipc 聲明當前類是一個管道,而且提供關於管道的元數據原型
@Injectable 標記元數據並可使用Injector注入器注入io
@NgModule是一個裝飾器函數,它接收一個用來描述模塊屬性的元數據對象
重要的屬性有:
declarations 聲明本模塊中擁有的視圖類(Angular中有三種視圖類:組件、指令和管道)
exports - declarations的子集,可用於其餘模塊的組件模板
imports 本模塊聲明的組件模板須要的類須要的類所在的其餘模塊 模塊的導入聲明
providers -服務的建立者,並加入到全局服務列表中,
bootstrap --指定應用的主視圖(稱爲根節點),它是全部其餘視圖的宿主
2.屬性裝飾器:
屬性裝飾器表達式會在運行時看成函數被調用
傳入2個參數
(1).對於靜態成員來講是類的構造器,對於實例成員是類的原型對象
(2).成員名字
@Input 聲明一個輸入屬性,以便咱們能夠經過屬性綁定更新它
@Output 聲明一個輸出屬性,以便咱們能夠經過事件綁定進行訂閱
@Hostbinding 把宿主元素的屬性(好比CSS類) 綁定到指令/組件的屬性
@HostListener 經過指令/組件的方法訂閱宿主元素的事件
@ContentChild 配置一個內容查詢
@ViewChild 配置一個視圖查詢
@ContentChildren 配置多個內容查詢(返回QueryList類型)
@ViewChildren 配置多個視圖查詢(返回QueryList類型)
3.參數裝飾器:
參數裝飾器表達式會在運行時看成函數被調用
傳入3個參數
(1).對於靜態成員來講是類的構造函數,對於實例成員是類的原型對像
(2).成員名字
(3).參數在函數列表中的索引
@Ingject指定依賴關係的參數裝飾器(通常用來注入被標記Injectable的類)
@Optional將依賴項標記爲可選的參數類型,若是沒有找到依賴關係,注射器將提供null
@Self指定注射器只能從自己檢索依賴關係
@SkipSelf指定注射器只能從父類檢索依賴關係
@Host按照依賴關係來檢索