在哪里保持“全球化”?视图和动作
Where to keep "global" view and actions in Angular?
我正在用AngularJS构建一个应用程序,它进展顺利,但我有一个问题,理解在哪里以及如何编码全局的东西,比如注销的过程?
我在右上角有一个链接,当点击时将删除用户cookie。可能有一种通用的方法来共享实际这样做的代码?你是否设置了一个继承动作的控制器层次结构?表演一些广播魔术?指令?
我需要一些帮助。
您可以这样定义服务:
app.service('Auth', function() {
var auth = {};
auth.loggedIn = false;
auth.login = function() {
auth.loggedIn = true;
};
auth.logout = function() {
auth.loggedIn = false;
};
return auth;
});
上面的代码示例摘自我强烈推荐的题为消费服务的文章。通过阅读它,您将深入了解如何使用服务。
(更新)我相信你有两种选择如何使用这项服务。你可以在应用程序的控制器中使用它(就像我们在本文中使用的那样),或者你可以创建一个可重用的指令。
JSFiddle演示了第一个选项,其中服务被注入到最顶层的控制器中,并通过最顶层的作用域公开。子作用域的原型继承自父作用域,所以你也可以在子作用域中访问服务。
昨天我看到一篇很棒的文章,概述了登录的东西和angular:
https://medium.com/opinionated-angularjs/7bbf0346acec但简短的回答是,我同意,它应该在一个服务中-即单例。
使用服务。你可以创建一个$user或$auth服务来做实际的登录/注销、加载当前用户信息、权限检查等,其他服务应该使用这个服务来做与user/auth相关的事情。
这也适用于其他事情。例如,如果你必须共享数据或提供通用api供控制器/指令使用。
相关文章:
- 如何使用javascript从主svg对象动态创建svg视图框
- 正在使用$location.path(.)路由ng视图
- angular.js没有'无法在PhoneGap中处理视图标记
- 如何包含特定于每个视图angularjs的javascript文件
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- Ajax Live搜索发布到Laravel视图
- backbone.js无法渲染视图
- 根据某些条件在视图之间切换
- ng视图外的链接重定向到ng视图内的页面
- 如何在Jquery中发布后将值从视图返回到控制器
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 使用Scala Play Framework视图中的键检索映射值
- FF视图源|脚本高亮显示为红色
- 如何使bxslider仅在移动视图中处于活动状态
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 在Rails中更新Div,而不更改更新请求后的视图
- 如何在Ionic Android中将Javascript注入到web视图中
- 在哪里保持“全球化”?视图和动作