angular2 的依賴注入包含了太多的內(nèi)容,其中的一個重點(diǎn)就是注入器,而注入器又非常難理解,今天我們不深入介紹注入器的內(nèi)容,可以參考官方文檔,我們今天來說注入器的層級。
也就是組件獲取服務(wù)的容器會選擇具體哪一個。
先簡單介紹一個背景:有3個組件AppComponent 根組件、DetailList組件 ( 日志列表組件)、Detail組件( 日志組件)。
這三個組件會形成一個組件樹,對應(yīng)的我們也可以認(rèn)為每個組件都會有一個獨(dú)立的注入器(有時候不會出現(xiàn),但是可以這么認(rèn)為)。
加入一個日志服務(wù)LoggerService,如果按照我們普通的入門方式,在根模塊providers 中提供LoggerService。那么在整個應(yīng)用程序中,LoggerService只有一個實(shí)例,什么意思呢?就是說無論在哪個組件,獲取到的都是首次創(chuàng)建的LoggerService,所有組件共用一個服務(wù)實(shí)例,這有時候會是一個有用的特性,比如我們使用的全局配置。
全局唯一不是我們這次要驗(yàn)證的重點(diǎn),因?yàn)檫@個太普通,我們這次要說明的是我們?nèi)绾卧诿總€組件中都獲取單獨(dú)的LoggerService實(shí)例,即每個組件的實(shí)例都不同。這個就需要對ng2的依賴注入有所了解才可以。