2017-02-10 94 views
2

在John Papa非常好的course on Angular 2中,他建議根據經驗法則,提供商在@NgModule而不是@Components中註冊,因爲很少需要將提供者隱藏其他組件。在Angular 1中,所有提供者都需要在模塊級進行註冊,因此不存在任何爭議。但是,什麼情況下才能打破這種經驗法則呢?在角度模塊或組件中註冊提供商

回答

3

如果您在每個組件中註冊,則每次創建組件的實例時都會創建new object for that service。因此,如果您需要爲每個組件提供自己的服務,請在組件中提供它們。

如果您需要singleton service,請在模塊中提供它,並且該模塊的所有組件都將獲得相同的服務實例。