美文网首页
Angular 点击当前路由刷新并且重置状态

Angular 点击当前路由刷新并且重置状态

作者: daozun | 来源:发表于2020-05-27 20:37 被阅读0次

1. 需求

最近接到一个新需求,需要在公司的后台管理项目上,点击当前 tab 页面刷新,并且组件内的状态重置。

2. 查找

经过查找,找到如下代码:

app.routing.ts:

@ngModule({
 imports: [RouterModule.forRoot(routes, {onSameUrlNavigation: 'reload'})],
 exports: [RouterModule],
 })

上面代码好用,但是只是路由刷新,虽然路由系统里面的事件也都能重新加载,但是路由对应的页面状态并没有重置。

3. 思考 & 结果

其实实现这个功能思路也很简单,可以建一个空白页面,判断当前点击的路由是否是当前页面,如果相等,则先定位到空白页面,然后再跳转回来,这样就能实现需求了。

Angular 作为一个大而全的框架,当然也有对应的方法,如下:

this.router.navigateByUrl('/blank', {skipLocationChange: true})
  .then(()=>this.router.navigate([<route>]));

router 下的 navigateByUrl 函数返回一个 Promise, skipLocationChange 表示是否将新状态推入历史记录。经过我的测试它为 true 时,点击跳转的时候,url 地址没有发生改变,为 false 时发生了改变。

相关文章

  • Angular 点击当前路由刷新并且重置状态

    1. 需求 最近接到一个新需求,需要在公司的后台管理项目上,点击当前 tab 页面刷新,并且组件内的状态重置。 2...

  • 当前路由下进行跳转

    业务需求是点击收入类预算,可以将当前的路由进行一次跳转。效果是刷新当前路由,并且将高亮恢复到第一个默认值 标题使用...

  • vue刷新当前页

    主要是关于退出登录后,首页的变化1.点击退出登录,路由跳转到当前页 登录状态刷新了,但是页面没有刷新的效果,用户体...

  • Vue Element 导航子路由不选中问题

    首先说下遇到的问题1.进入嵌套路由,当前父导航无法高亮显示2.页面刷新后导航重置问题3.在嵌套路由刷新页面也会导致...

  • 模拟面试问题总结

    AngularJS路由实现原理 Angular路由 允许我们通过不同的URL访问不同的内容,并且Angular路由...

  • 模拟面试问题总结

    AngularJS路由实现原理 Angular路由 允许我们通过不同的URL访问不同的内容,并且Angular路由...

  • Vue动态路由:登录后首次点击侧边栏,显示白屏,手动刷新后能正常

    问题:Vue动态路由:登录后首次点击侧边栏,显示白屏,手动刷新后能正常跳转 原因:当前路径没有匹配动态路由,路由缓...

  • git回滚到历史节点

    这个整体非常简单,大体上就分三步:1、点击历史节点,重置到历史节点,选择硬合并。2、点击当前节点,重置到当前节点,...

  • 刷新当前路由

    有时候我们点击菜单时想要刷新该菜单的页面内容,这个时候直接导航到当前页面本身会报错,我们可以在导航前检查是否导航到...

  • ionic手机端实现_不同菜单显示对应页面

    单页面路由,点击导航显示对应页面,并且当前导航成红色。js里包括路由传参。 另一种方法switch

网友评论

      本文标题:Angular 点击当前路由刷新并且重置状态

      本文链接:https://www.haomeiwen.com/subject/nmpgahtx.html