Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “存放在哪里?”;“全球”;角度的视图和动作?_Javascript_Angularjs - Fatal编程技术网

Javascript “存放在哪里?”;“全球”;角度的视图和动作?

Javascript “存放在哪里?”;“全球”;角度的视图和动作?,javascript,angularjs,Javascript,Angularjs,我正在用AngularJS构建一个应用程序,进展顺利,但我在理解在哪里以及如何编写全局代码方面遇到了问题,比如注销过程 我在右上角有一个链接,单击该链接将删除用户cookie。可能有一个共同的方法来分享代码的实际这样做?您是否设置了继承操作的控制器层次结构?做一些广播魔术?指令 我需要一些关于如何执行此操作的帮助。您可以定义服务-类似以下内容: app.service('Auth', function() { var auth = {}; auth.loggedIn = false;

我正在用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;
});
上面的代码示例取自我强烈推荐的文章。通过阅读,您将了解如何使用服务

[更新]

我相信你有两个选择如何使用这项服务。您可以在应用程序的一个控制器中使用它(就像我们在提供的文章中使用的一样),或者您可以创建一个可重用的指令


这里演示了第一个选项,其中服务被注入到最顶层的控制器中,并通过最顶层的作用域公开。子作用域原型继承自父作用域,因此您也可以在子作用域中访问服务。

我昨天看到一篇很棒的文章,概述了登录内容和功能:


但是简短的回答是的,我同意,它应该在服务中-即singleton。

使用服务。您可以创建一个$user或$auth服务,该服务将实际登录/注销并加载当前用户信息、权限检查等。其他服务应使用该服务来执行与用户/auth相关的操作


这也适用于其他事情。例如,如果您必须共享数据或为控制器/指令提供公共API以供使用。

我认为您可以使用angular service是的,我已经创建了一个服务。但是这个服务必须从一个普通的控制器或者其他地方调用,因为注销链接在所有页面上。是的,我已经创建了这个服务。但我需要从某个地方打电话给这项服务。我是否有一个自己的控制器用于注销链接,我使用
ng controller=“LogoutController”
添加该链接,然后调用该服务或什么?只需将该服务注入
控制器或
指令即可使用它。请仔细阅读我提供的文章。是的,但整个问题是哪个控制者?我不想把它注入每个控制器,因为注销按钮在任何地方都可以工作。那么这个主控制器变成全局控制器了吗?那么你应该把它注入最顶层的控制器中。但是像链接一样在容器div上添加一个“主控制器”,然后通过路由服务创建另一个控制器,这样可以吗?问题是,拥有多个控制器可以吗?不仅仅是通过路由服务创建的路由。