的技術堆棧
該項目循環依賴是採用了棱角分明2和打字稿本地NPM服務器上運行,並使用角CLI建。共享集服務,避免在共享組件
建築
該項目共有三個模塊。第一個是非UI服務和組件。第二個是UI組件和佈局。第三個也是最後一個模塊用於UI服務。他們被分解爲如下圖所示:
正如你所看到的,我真的不知道我是否需要一個父模塊這裏與否,因此最上面的項目」父母MODULE?」
的問題
- 共享跨越多個模塊
- 避免循環依賴的服務的單當兩個模塊需要相互起作用
問題1 - 橫向中共享服務的Singleton多個模塊
就我而言,我需要UI模塊和非UI模塊共享UI服務模塊中的所有服務的單身人士。
我曾嘗試
到目前爲止,我已經使用forRoot()
無濟於事,以及試圖將服務本身轉移到父模塊,並從那裏向他們提供嘗試。不管我做什麼,我似乎都無法讓這兩個模塊從UI服務模塊共享一個單例。
問題2 - 避免循環依賴當兩個模塊都需要互相
我面對我的應用程序的另一個問題是,我有一個模塊的一部分,需要所有其它模塊,這反過來需要的第一個模塊的一部分爲了工作。
在非UI模塊中,您將看到頁眉/頁腳需要使用UI模塊才能正常工作。但是,在UI模塊中,佈局需要訪問頁眉/頁腳才能將這些項目提供爲佈局的一部分。這形成了一個循環依賴關係,我不能完全消除我的頭。
我曾嘗試
我想到了移動佈局了UI模塊到自己的模塊,但是他們也需要在UI模塊的組件部分的引用,所以如果只要我進口該模塊我重新創建循環依賴。
解決方案
我需要一種方法來消除循環依賴,並以某種方式共享所有服務中的一個單所有其它模塊之間的UI服務模塊中。
我一直在努力尋找解決這兩個問題的一個星期,現在我認爲在這一點上我無法看到樹木的森林。我確信我錯過了一些愚蠢的東西,但我似乎無法解決這個問題。
這並不能真正解決我的問題,因爲它需要將頁眉/頁腳移動到不同的模塊,這在我的應用程序體系結構中是不可能的。碎片必須保留在原處。我可以修改的唯一東西是進口商和供應商。 – StephenRios