2017-07-31 84 views
-1

我目前正在使用angular 2應用程序。每個模塊都應該提供服務來獲取數據嗎? (Angular 2)

假設我在我的應用程序中構建了一個新功能模塊,並且此模塊需要來自服務器的一些數據,同時我還有一些全局數據服務(核心模塊)可以將這些數據提供給我的新模塊。

我的問題是,如果我建立另一個與這些數據服務進行通信的服務,並且我的新模塊中的任何組件只會與該服務進行通信,或者可以與我的組件直接對話以訪問數據服務。

(假設數據服務具有簡單的CRUD操作,例如)

我的另一個問題是,可以直接在功能模塊服務談話服務器(即發出Ajax請求),或者它應該總是談論過數據服務呢?

我試着用PIC來解釋它,希望它會幫助.. enter image description here

謝謝!

+0

這是關於軟件設計的一般問題。您可能需要嘗試將其發佈:https://softwareengineering.stackexchange.com/ – cgTag

+0

@ThinkingMedia在引用其他網站時,指出[交叉發佈被忽視]通常很有幫助(https://meta.stackexchange .com/tags/cross-posting/info) – gnat

+0

@gnat是的,我完全同意。我希望這個網站被列爲關注話題的關鍵選項之一...... – cgTag

回答

0

如果您有一個通用數據服務爲整個應用程序提供數據,那麼每個組件都可以訪問它。

如果您的功能需要更具體的數據訪問需求,那麼即使再調用通用數據服務,向功能模塊添加第二個服務也是有意義的。

這是而不是認爲好的做法,直接添加http代碼到您的組件。將它分離出它自己的組件使其更易於修改,測試和調試。而且它可以在整個應用程序中重用。

0

回答你的問題。首先,功能模塊面向使用延遲加載更多信息在這裏https://angular.io/guide/ngmodule#angular-modularity 目標是在由路由器控制的模塊中加載應用程序。其次,服務需要實例化一次,並隨時隨地使用。這是核心模塊的原因。核心模塊將被添加到我們的app.module.ts並且隨處可用。總之,我不認爲需要在功能模塊中提供服務才能使用核心模塊中的服務。對於你的其他問題,這是可能的,但這不是一個好習慣,因爲你的服務可能會被多次實例化,這是不必要的,並可能導致問題。

希望它有幫助。

相關問題