Angular4.x通过路由守卫进行路由重定向步骤详解

这次给大家带来Angular4.x通过路由守卫进行路由重定向步骤详解,Angular4.x通过路由守卫进行路由重定向的注意事项有哪些,下面就是实战案例,一起来看一下。

需求:

最近在做一个网上商城的项目,技术用的是Angular4.x。有一个很常见的需求是:用户在点击“我的”按钮时读取cookie,如果有数据,则跳转到个人信息页面,否则跳转到注册或登录页面

解决

在这里通过Angular的路由守卫来实现该功能。

1. 配置路由信息

const routes = [ { path: 'home', component: HomeComponent }, { path: 'product', component: ProductComponent }, { path: 'register', component: RegisterComponent }, { path: 'my', component: MyComponent }, { path: 'login', component: LoginComponent, canActivate: [RouteguardService] },//canActivate就是路由守卫 { path: '', redirectTo: '/home', pathMatch: 'full' }]

登录后复制

2. 路由守卫条件(RouteguardService.ts)

import { Injectable, Inject } from "@angular/core";import { DOCUMENT } from "@angular/common";import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router, NavigationStart } from "@angular/router";import userModel from "./user.model";@Injectable()export class RouteguardService implements CanActivate {  constructor(private router: Router, @Inject(DOCUMENT) private document: any) {  }  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {    // this.setCookie("userId", "18734132326", 10);    //读取cookie    var cookies = this.document.cookie.split(";");    var userInfo = { userId: "", pw: "" };    if (cookies.length > 0) {      for (var cookie of cookies) {        if (cookie.indexOf("userId=") > -1) {          userModel.accout = cookie.split("=")[0];          userModel.password = cookie.split("=")[1];          userModel.isLogin = false;        }      }    }    //获取当前路由配置信息    var path = route.routeConfig.path;    if (path == "login") {      if (!userModel.isLogin) {        //读取cookie如果没有用户信息,则跳转到当前登录页        return true;      } else {        //如果已经登录了则跳转到个人信息页面,下面语句是通过ts进行路由导航的        this.router.navigate(['product'])      }    }  }  setCookie(cname, cvalue, exdays) {    var d = new Date();    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));    var expires = "expires=" + d.toUTCString();    document.cookie = cname + "=" + cvalue + "; " + expires;  }}

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

vue计算属性和监听器案例代码分析

js正则相关使用案例分享

以上就是Angular4.x通过路由守卫进行路由重定向步骤详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2759685.html

(0)
上一篇 2025年3月8日 08:38:46
下一篇 2025年3月8日 08:38:53

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何对微信小程序进行开发

    这次给大家带来如何对微信小程序进行开发,对微信小程序进行开发的注意事项有哪些,下面就是实战案例,一起来看一下。 no.1 背景图不显示 微信小程序里面是允许用户自定义背景图的,但是限定了背景图的路径及地址,之前一直用相对路径来写,微信开发者…

    编程技术 2025年3月8日
    200
  • 怎样使用Angular对服务端进行渲染

    这次给大家带来怎样使用Angular对服务端进行渲染,使用Angular对服务端进行渲染的注意事项有哪些,下面就是实战案例,一起来看一下。 Angular Universal Angular在服务端渲染方面提供一套前后端同构解决方案,它就是…

    2025年3月8日 编程技术
    200
  • 如何使用vue axios进行请求拦截

    这次给大家带来如何使用vue axios进行请求拦截,使用vue axios进行请求拦截的注意事项有哪些,下面就是实战案例,一起来看一下。 axios 简介 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客…

    编程技术 2025年3月8日
    200
  • 如何利用JS分时函数进行性能优化

    这次给大家带来如何利用JS分时函数进行性能优化,利用JS分时函数进行性能优化的注意事项有哪些,下面就是实战案例,一起来看一下。 分时函数和函数节流的问题不一样,函数节流针对的事件不是用户主动调用的,前面已经提过了。 函数节流的原理是:延迟当…

    编程技术 2025年3月8日
    200
  • 如何对vue渲染时闪烁{{}}进行处理

    这次给大家带来如何对vue渲染时闪烁{{}}进行处理,对vue渲染时闪烁{{}}进行处理的注意事项有哪些,下面就是实战案例,一起来看一下。 v-if和v-show可能是日常开发中最常用的两个指令,虽然看上去两者功能是类似的,但是两者还是存在…

    编程技术 2025年3月8日
    200
  • 怎样进行Node.js模块全局安装路径配置

    这次给大家带来怎样进行Node.js模块全局安装路径配置,进行Node.js模块全局安装路径配置的注意事项有哪些,下面就是实战案例,一起来看一下。 下载安装NodeJS后,在自己选择的路径下会有如下的文件: 默认情况下NodeJS安装会同时…

    编程技术 2025年3月8日
    200
  • 怎样使用vue组件进行数据传递

    这次给大家带来怎样使用vue组件进行数据传递,使用vue组件进行数据传递的注意事项有哪些,下面就是实战案例,一起来看一下。 Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据。必须使用特定的方法才能实现组件之间的数据…

    编程技术 2025年3月8日
    200
  • JS对于DOM节点进行增删改查

    这次给大家带来JS对于DOM节点进行增删改查,JS对于DOM节点进行增删改查的注意事项有哪些,下面就是实战案例,一起来看一下。 DOM含义:DOM是文档对象模型(Document Object Model,是基于浏览器编程的一套API接口,…

    编程技术 2025年3月8日
    200
  • 怎样进行Vue拖拽组件开发

    这次给大家带来怎样进行Vue拖拽组件开发,进行Vue拖拽组件开发的注意事项有哪些,下面就是实战案例,一起来看一下。 为什么选择Vue? 主要原因:对于前端开发来说,兼容性是我们必须要考虑的问题之一。我们的项目不需要兼容低版本浏览器。项目本身…

    2025年3月8日 编程技术
    200
  • 使用JS进行对table表格内列内容即时搜索筛选

    这次给大家带来使用JS进行对table表格内列内容即时搜索筛选,使用JS进行对table表格内列内容即时搜索筛选的注意事项有哪些,下面就是实战案例,一起来看一下。 往往有些时候,我们把数据从数据库读取出来,显示到table里面,而此时来了个…

    2025年3月8日
    200

发表回复

登录后才能评论