我需要了解如何创建两个单独的Angularjs App文件夹的应用程序结构。
让我们说:
在我的XAMPP / htdocs中,我有一个Angularjs App文件夹的单独文件夹。 A app文件夹和B app文件夹需要相互集成(我不知道它是否是正确的术语)。
例如,在app文件夹中有一个SignIn,当凭据有效时,它将重定向到B app文件夹,当B app app文件夹中的Signout,用户将被重定向到A app文件夹..类似于..
我的问题是,如何连接这两个(A和B应用程序文件夹)?
我希望我能够很好地理解它。感谢。
答案 0 :(得分:1)
您可以使用服务来实现此目标。 由于您有两个不同的应用程序,并且需要在它们之间创建桥梁,因此一种好方法是创建可以在您需要的地方注入的服务。 AngularJs服务是在AngularJs App中创建的,方法是使用你的角度模块声明它:
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。
考虑到您公开的场景,我不知道您保留已记录用户上下文的方式,但您可以评估服务方法上的用户操作,然后调用$ location.path(“您的app2 root url”) )为了重定向用户,或者,如果是这种情况,请调用$ window.location.href =“your app2 root url”以便重新加载页面。
在我编写的应用程序中,我使用实现基于令牌的身份验证并将临时toke存储为私有cookie,所以如果我有你的应用场景,在App2上我会在我的服务上注入$ cookies并使用它来检索临时cookie,以检查会话验证,并决定是否需要重定向我的用户。
您可以在此处实现的另一种概念是使用第三个AngularJs应用程序来声明您的公共服务,因此您无需在两个应用程序之间创建任何危险的循环引用。
我不知道你的AngularJs知识的深层次,但是你总是需要通过将它包含在你的AngularJs应用程序模块中来声明模块依赖性,就像这样:
angular.module("YourAngularModuleName",["anotherDepencyModule", "another", ...]);
希望它有所帮助。 欢呼声。