您可以使用服務來實現此目標。 由於你有兩個不同的應用程序,你需要在它們之間建立一個橋樑,一個好方法是創建可以注入需要它們的服務。 甲AngularJs服務的AngularJs應用內部產生,通過使用您的角模塊這樣它聲明:
angular.module("YourAngularModuleName").factory("MyCustomService",
[
"injectedDependency",
function(injectedDependency)
{
var serviceInstance={};
serviceInstance.operationYouNeed = function(){
//do your stuff.
return;
};
return serviceInstance;
}
]);
以上此服務是一個名爲「MyCustomService」的服務,其具有所謂的「operationYouNeed」方法的一個示例性結構。
在您的AngularJs App控制器上,您可以注入MyCustomService並調用operationYouNeed,因爲您可能需要它。
考慮到您公開的情況,我不知道保持記錄的用戶上下文的方式,但是您可以評估service方法的用戶操作,然後調用$ location.path(「您的app2根url 「)爲了重定向用戶,或者,如果是這種情況,請調用$ window.location.href =」您的app2根URL「以導致頁面重新加載。
在我編寫的應用程序中,我使用實現基於令牌的身份驗證並將臨時TOKE存儲爲私有cookie,因此如果我有您的應用場景,在App2上我會在我的服務中注入$ cookie並將其用於檢索臨時cookie以檢查會話驗證,並決定是否需要重定向我的用戶。
您可以在這裏實現的另一種概念是使用第三個AngularJs應用程序來聲明您的公共服務,因此您不需要在兩個應用程序之間創建任何危險的循環引用。
我不知道你的AngularJs知識deepnes但你永諾需要聲明一個模塊依賴磨片,你做這樣的事情,通過包括它的AngularJs應用模塊上,像這樣:
angular.module("YourAngularModuleName",["anotherDepencyModule", "another", ...]);
希望能幫助到你。 乾杯。