我是 angularjs 的新手,目前正在开发一个虚拟购物网站项目以进行练习。 我对如何将 app.js 与其他模块中存在的文件链接起来有点困惑。
我正在开发一个登录模块,该模块在登录模块内各自的文件夹中拥有自己的 LoginController 和 LoginService 。
在 LoginService 中,我定义了两个属性,即 isLogged 和 username。当用户使用 $http.post() 方法成功登录时(通过数据库中的用户表),值分别更改为 true 和 username。
如何确保登录服务在整个网站的不同模块中可用,以便用户保持登录状态。
提前致谢。
最佳答案
您不需要将每个部分都放入自己的模块中。您可以将一个模块用于整个应用程序。所以不要打电话 angular.module('newModuleName', [])
对于每个项目,您可以调用 angular.module('app')
(没有 []),并且它将继续向您的单个应用程序添加新组件。
另一个选项是创建新模块,例如 angular.module('loginModule', [])
,然后将其作为依赖项添加到您的应用程序中,例如 angular.module('app', ['loginModule'])
。从此时起,您的 loginModule
中的任何服务/工厂应用程序现在可在您的 app
中进行 $injection .
但一般来说,您可能希望避免为每个部分创建单独的模块,除非该模块充当完全不同且与其余部分分开的“插件”(即不依赖于 app
中的任何内容)发挥作用)。如果您需要双向依赖,例如 app
需要调用login
,但是login
还需要调用app
,它们应该都在同一个应用程序中。
您还应该查看 OAuth2 身份验证和 JSON Web token (JWT),以了解在 AngularJS 中进行授权的正确方法。
关于javascript - 如何在 angularjs 中使用服务或工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28595659/