如果我想要在整個應用程序中使用服務,我應該在app.module.ts
中聲明它爲提供程序,但如果它在app.component.ts
中聲明,它也適用。爲什麼我不能在Angular 2的組件中提供服務
這兩種方法有什麼重大區別嗎?
如果我想要在整個應用程序中使用服務,我應該在app.module.ts
中聲明它爲提供程序,但如果它在app.component.ts
中聲明,它也適用。爲什麼我不能在Angular 2的組件中提供服務
這兩種方法有什麼重大區別嗎?
比方說,你有在你的AppModule
聲明三個部分組成。如果您在每個組件中單獨提供服務,它們中的每一個都將擁有自己的服務實例,但是如果您在AppModule
中提供服務,則您的服務將是單件服務 - 每個組件將共享該服務的同一實例。
使用app.module.ts
vs app.component.ts
只是一個naming convention並且不編程確定Angular中的任何內容。該代碼可以在您的服務所在地運行。將服務放入service-name.service.ts
文件中可能更有意義,而不是app.module.ts
。然而,無論哪個地方,正如Stefan Svrkota的回答所指出的那樣,您可以獲得代碼重用的優勢
此答案具有誤導性。按照慣例,我們期望app.module.ts是一個模塊,app.component.ts是一個組件 - 它們是兩個完全不同的東西。正如這個答案所暗示的那樣,它不是,有兩個不同名字的同一個文件。 – Bruford
我只是迴應「但它也適用,如果它是在app.component.ts中聲明」 - 命名約定只是一個約定是不是在Angular中確定任何東西。 –