在角度应用程序中基于布尔值进行限制和重定向

贾凡

我想在我的角度应用程序中限制和重定向对某些路线的访问。我意识到还有其他类似的问题,但是由于角度和火力不断发展,因此一些较早的解决方案不再起作用,我想拥有最简单的解决方案,因为我目前的目标不是制作生产应用,而是适用的应用程序。

我可以登录和注销,并且每次登录时,都会将rootscope变量设置为true,而每次注销时,都将变量设置为false。鉴于此,当用户未登录时,如何限制我的路由并重定向到登录页面?

angular
  .module('angularappApp', [
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'firebase'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl',
        controllerAs: 'main'
      })
      .when('/chat', {
          templateUrl: 'views/chat.html',
          controller: 'ChatCtrl'
      })
      .when('/login', {
          templateUrl: 'views/login.html',
          controller: 'LoginCtrl'
      })
      .when('/register', {
          templateUrl: 'views/register.html',
          controller: 'RegisterCtrl'
      })
      .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl',
        controllerAs: 'about'
      })
      .when('/logout', {
          template: 'Loging out...',
          controller: 'LogoutCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  }).constant('FBURL', 'https://dazzling-inferno-7746.firebaseio.com/');

这是我的app.js文件。

Poyraz Yilmaz

在您的应用中实现此类功能的最常见方法是观察页面更改并在条件失败时取消过渡。

在您的示例中,您可以查看路线更改并检查是否$rootScope具有特定属性true或false。

  $rootScope.$on('$locationChangeStart', function(event, next, current) {
    // check if user is login if not then prevent default action
    // and redirect user to login page
    if(!$rootScope.isLogin){
      event.preventDefault();
      $location.path('login');
    }
  }); 

我建议您将此代码块放入运行块或至少配置块,因为它们是开始在angularjs应用程序中工作的第一件事...

并强烈建议您在默认路由上使用ui.router,因为它比默认路由具有更多功能...

限制特定页面

如果要限制特定页面,可以在其定义上添加自定义属性,并检查其是否通过所有条件,然后再进行操作...

.when('/chat', {
      templateUrl: 'views/chat.html',
      controller: 'ChatCtrl',
      // add a custom property for checking at route changes
      requireLogin: true
  })

然后在您的事件块中像这样检查

  $rootScope.$on('$locationChangeStart', function(event, next, current) {
    // get next route
    var nextRoute = $route.routes[$location.path()];
    // check if next page requires login then
    // check if user is login if not then prevent default action
    // and redirect user to login page
    if(nextRoute.requireLogin && !$rootScope.isLogin){
      event.preventDefault();
      $location.path('login');
    }
  });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有OKCE授权和PKCE流的Amazon S3存储桶中托管的角度应用程序静态网站的重定向问题

来自分类Dev

根据全局布尔值重定向所有页面

来自分类Dev

在Eclipse RAP应用程序中处理HTTP会话超时和重定向

来自分类Dev

Spring Security应用程序中的重定向循环

来自分类Dev

JSP / Servlet Web应用程序中的重定向模块

来自分类Dev

渐进式Web应用程序中的重定向

来自分类Dev

.htaccess用于在php应用程序中重定向语言

来自分类Dev

在应用程序退出后,Swift Struct布尔值重置

来自分类Dev

如何基于列中的布尔值进行过滤并返回groupby obj

来自分类Dev

PHP应用程序重定向周期

来自分类Dev

iOS重定向回应用程序

来自分类Dev

从Django应用程序重定向URL

来自分类Dev

PHP应用程序重定向周期

来自分类Dev

expressjs重定向到角度路线而不启动应用程序

来自分类Dev

在Azure B2C中,本机客户端的重定向URI和Web应用程序的重定向URL的用法是什么?

来自分类Dev

使用 Phonegap/Cordova JS 应用程序和 MS ADAL JS。如何在真实移动设备中重定向 URI?

来自分类Dev

致命错误:在从 Android 应用程序输入字符串时调用 php 中布尔值的成员函数 bind_param()

来自分类Dev

基于布尔值的ng-grid中的颜色图标

来自分类Dev

基于成员布尔值的向量中的C ++排序对象

来自分类Dev

在Gson中,如何将布尔值限制为true和false(不是TrUe和fAlSe)?

来自分类Dev

将逻辑和应用于布尔值列表

来自分类Dev

按钮文字和布尔值(简单的Android应用)

来自分类Dev

具有方法和布尔值的Java程序

来自分类Dev

Powershell-在应用程序配置文件中找不到程序集绑定重定向

来自分类Dev

C#中的布尔值和布尔值之间的区别?

来自分类Dev

ASP.NET Core 如何根据布尔值将用户重定向到页面

来自分类Dev

Django Flatpages和重定向应用程序-区分大小写

来自分类Dev

nginx重写URL,而不会导致重定向和代理到后端应用程序

来自分类Dev

当按下后退按钮时,如何注销和重定向JSP应用程序?

Related 相关文章

  1. 1

    带有OKCE授权和PKCE流的Amazon S3存储桶中托管的角度应用程序静态网站的重定向问题

  2. 2

    根据全局布尔值重定向所有页面

  3. 3

    在Eclipse RAP应用程序中处理HTTP会话超时和重定向

  4. 4

    Spring Security应用程序中的重定向循环

  5. 5

    JSP / Servlet Web应用程序中的重定向模块

  6. 6

    渐进式Web应用程序中的重定向

  7. 7

    .htaccess用于在php应用程序中重定向语言

  8. 8

    在应用程序退出后,Swift Struct布尔值重置

  9. 9

    如何基于列中的布尔值进行过滤并返回groupby obj

  10. 10

    PHP应用程序重定向周期

  11. 11

    iOS重定向回应用程序

  12. 12

    从Django应用程序重定向URL

  13. 13

    PHP应用程序重定向周期

  14. 14

    expressjs重定向到角度路线而不启动应用程序

  15. 15

    在Azure B2C中,本机客户端的重定向URI和Web应用程序的重定向URL的用法是什么?

  16. 16

    使用 Phonegap/Cordova JS 应用程序和 MS ADAL JS。如何在真实移动设备中重定向 URI?

  17. 17

    致命错误:在从 Android 应用程序输入字符串时调用 php 中布尔值的成员函数 bind_param()

  18. 18

    基于布尔值的ng-grid中的颜色图标

  19. 19

    基于成员布尔值的向量中的C ++排序对象

  20. 20

    在Gson中,如何将布尔值限制为true和false(不是TrUe和fAlSe)?

  21. 21

    将逻辑和应用于布尔值列表

  22. 22

    按钮文字和布尔值(简单的Android应用)

  23. 23

    具有方法和布尔值的Java程序

  24. 24

    Powershell-在应用程序配置文件中找不到程序集绑定重定向

  25. 25

    C#中的布尔值和布尔值之间的区别?

  26. 26

    ASP.NET Core 如何根据布尔值将用户重定向到页面

  27. 27

    Django Flatpages和重定向应用程序-区分大小写

  28. 28

    nginx重写URL,而不会导致重定向和代理到后端应用程序

  29. 29

    当按下后退按钮时,如何注销和重定向JSP应用程序?

热门标签

归档