我正在使用AngularJS构建一个应用程序并且进展顺利,但我在理解在何处以及如何编写全局内容(例如注销过程)方面存在问题?
我的右上角有一个链接,用于在点击时删除用户Cookie。可能有一种共享实际代码的常用方法吗?您是否设置了继承操作的控制器层次结构?做一些广播魔术?指令?
我需要一些帮助来解决这个问题。
答案 0 :(得分:1)
你可以定义服务 - 像这样:
app.service('Auth', function() {
var auth = {};
auth.loggedIn = false;
auth.login = function() {
auth.loggedIn = true;
};
auth.logout = function() {
auth.loggedIn = false;
};
return auth;
});
以上代码示例摘自我强烈推荐的标题为Consuming services的文章。通过阅读,您将了解如何使用服务。
<强> [更新] 强>
我相信您有两种选择如何使用此服务。你可以使用它的一个控制器(就像我们在提供的文章中使用的那样),或者你可以创建一个可重用的指令。
有JSFiddle演示了第一个选项,其中服务注入最顶层控制器并暴露在最顶层范围内。子范围原型继承自父范围,因此您也可以在子范围内访问该服务。
答案 1 :(得分:0)
我昨天遇到一篇很棒的文章,概述了登录内容和角度:
https://medium.com/opinionated-angularjs/7bbf0346acec
但简短的回答是,我同意,它应该是在服务中 - 即单身。
答案 2 :(得分:0)
使用服务。您可以创建一个$ user或$ auth服务,它将执行实际的登录/注销和加载当前用户信息,权限检查等。控制器和其他服务应该使用此服务来执行用户/身份验证相关的事情。
这也适用于其他事情。就像你必须共享数据或提供用于控制器/指令的通用API一样。