Angular刷新当前页面的实现方法


Posted in Javascript onNovember 21, 2018

onSameUrlNavigation

从angular5.1起提供onSameUrlNavigation来支持路由重新加载。

有两个值'reload'和'ignore'。默认为'ignore'

定义当路由器收到一个导航到当前 URL 的请求时应该怎么做。 默认情况下,路由器将会忽略这次导航。但这样会阻止类似于 "刷新" 按钮的特性。 使用该选项可以配置导航到当前 URL 时的行为。

使用

配置onSameUrlNavigation

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

reload实际上不会重新加载路由,只是重新出发挂载在路由器上的事件。

配置runGuardsAndResolvers

runGuardsAndResolvers有三个值:

  • paramsChange: 仅在路由参数更改时触发。如/reports/:id 中id更改
  • paramsOrQueryParamsChange: 当路由参数更改或参训参数更改时触发。如/reports/:id/list?page=23中的id或page属性更改
  • always :始终触发
const routes: Routes = [
 {
  path: '',
  children: [
   { path: 'report-list', component: ReportListComponent },
   { path: 'detail/:id', component: ReportDetailComponent, runGuardsAndResolvers: 'always' },
   { path: '', redirectTo: 'report-list', pathMatch: 'full' }
  ]
 }
];

组件监听router.events

import {Component, OnDestroy, OnInit} from '@angular/core';
import {Observable} from 'rxjs';
import {Report} from '@models/report';
import {ReportService} from '@services/report.service';
import {ActivatedRoute, NavigationEnd, Router} from '@angular/router';

@Component({
 selector: 'app-report-detail',
 templateUrl: './report-detail.component.html',
 styleUrls: ['./report-detail.component.scss']
})
export class ReportDetailComponent implements OnInit, OnDestroy {
 report$: Observable<Report>;
 navigationSubscription;

 constructor(
  private reportService: ReportService,
  private router: Router,
  private route: ActivatedRoute
 ) {
  this.navigationSubscription = this.router.events.subscribe((event: any) => {
   if (event instanceof NavigationEnd) {
    this.initLoad(event);
   }
  });
 }

 ngOnInit() {
  const id = +this.route.snapshot.paramMap.get('id');
  this.report$ = this.reportService.getReport(id);
 }

 ngOnDestroy(): void {
  // 销毁navigationSubscription,避免内存泄漏
  if (this.navigationSubscription) {
   this.navigationSubscription.unsubscribe();
  }
 }

 initLoad(e) {
  window.scrollTo(0, 0);
  console.log(e);
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的Document文档对象
Jan 16 Javascript
Jquery插件写法笔记整理
Sep 06 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
Feb 17 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
Oct 17 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
Mar 11 Javascript
JavaScript实现强制重定向至HTTPS页面
Jun 10 Javascript
直接拿来用的页面跳转进度条JS实现
Jan 06 Javascript
BootStrap制作导航条实例代码
May 06 Javascript
Vuejs第十二篇之动态组件全面解析
Sep 09 Javascript
JavaScript算法教程之sku(库存量单位)详解
Jun 29 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
Jan 11 Javascript
vue backtop组件的实现完整代码
Apr 07 Vue.js
详解ES6系列之私有变量的实现
Nov 21 #Javascript
jQuery实现上下滚动公告栏详细代码
Nov 21 #jQuery
Vue.js 中 axios 跨域访问错误问题及解决方法
Nov 21 #Javascript
vue  directive定义全局和局部指令及指令简写
Nov 20 #Javascript
详解Vue.js在页面加载时执行某个方法
Nov 20 #Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
Nov 20 #Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 #jQuery
You might like
php+dbfile开发小型留言本
2006/10/09 PHP
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
Backbone.js中的集合详解
2015/01/14 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
Ajax清除浏览器js、css、图片缓存的方法
2015/08/06 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
python实现逆波兰计算表达式实例详解
2015/05/06 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
简单了解python代码优化小技巧
2019/07/08 Python
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
数控专业毕业生求职信范文
2013/09/21 职场文书
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
甲方资料员岗位职责
2013/12/13 职场文书
教师个人鉴定材料
2014/02/08 职场文书
业务员的岗位职责
2014/03/15 职场文书
对孩子的寄语
2014/04/09 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
联谊活动总结范文
2015/05/09 职场文书
匿名信格式范文
2015/05/27 职场文书
元宵节晚会主持词
2015/07/01 职场文书
2015年征兵工作总结
2015/07/23 职场文书
小学体育课教学反思
2016/02/16 职场文书
导游词之北京明十三陵
2019/10/28 职场文书