javascript - 如何在 angularjs 中使用服务或工厂

标签 javascript php angularjs

我是 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/

相关文章:

javascript - 无法在 View 中显示数据

javascript - Sails.js 将 key 和数据流式传输到 Angular

javascript - 在 AngularJS 中访问多维字典

javascript - chrome 通知退订事件

javascript - 在 mozilla/IE 中淡出无法正常工作

javascript - 在 Meteor 发布功能中获取用户的电子邮件地址

从 excel 文件读取日期字段的 PHPExcel 问题

javascript - 为什么阴影在 Three.js 中变得模糊

php - Laravel 5.1 工作和听众

php - CodeIgniter MySQL 查询不返回任何数据,即使肯定有数据要返回!