由於我公司的網站原本是開發的(ASP .NET w/ascx頁面和代碼隱藏),我不得不使用Angular的手動引導來獲得2個Angular應用程序同一頁。 1在任何給定時間的應用程序控制用戶與主交互的主視口(這是應用程序的主體),而另一個應用程序只是用於控制頁面頂部的頁眉的簡單窗口。在AngularJS應用程序中使用DI時出現奇怪的行爲
由於我希望網站的這兩個區域都使用Angular,我不得不使用manual bootstrapping來將Header應用程序引導到頁面。
直到最近,我都需要這兩個頁面部分才能在同一個工廠上工作,即我想在報頭應用程序以及主應用程序中顯示警報。當我試圖做到這一點時,我注意到工廠的兩個實例正在被實例化。我可以從一端修改變量,而不會從另一端持續。
我的猜測是,手動引導標題應用程序會導致2個應用程序「斷開連接」,因此會導致我注意到的行爲。
聽起來不錯?或者我可能只是在做一些不正確的事情?
TL; DR
可以在2個AngularJS應用程序共享同一角度工廠單身還是他們每個實例自己?我的猜測是,ngApp和angular.bootstrap
都實例化了根$rootScope
,並且所有子實體都從它們繼承。因此,如果您將2個應用程序和2個$rootScope
s嘗試將DOM事件添加到1上,則不會成功傳播到另一個
等待..所以整個模塊,你甚至不能共享服務?你不能在同一個應用程序中使用同一個服務的多個模塊嗎? – 2015-02-06 16:56:22
是的,但是,在*相同的應用*內。注入器是在應用程序的上下文中創建的。 「foo」服務的模塊無關緊要。有[某些方法](http://stackoverflow.com/a/16725874/968155)創建可共享的服務,但您確實需要考慮爲什麼您有兩個應用程序並行運行。 – 2015-02-06 17:45:10
@MattHintzke,答案是否解決了你的問題? – 2015-02-09 14:51:40