首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何重新加载当前页面?

如何重新加载当前页面?
EN

Stack Overflow用户
提问于 2018-09-18 22:55:09
回答 12查看 144.1K关注 0票数 44

我有一个编辑用户的页面,它有一些子组件在里面。每个子组件都可以更改或对其父组件产生一些影响。

因此,我没有将更改发送到父页面并更新某些字段,而是使用以下命令“重新加载”了当前页面

代码语言:javascript
运行
复制
private route: ActivatedRoute;

reload(){
    this.router.navigate(["/admin/user/edit/"+this.user.id]);
}

基本上,它重定向到当前页面。例如,当前页是

http://web.info/admin/user/edit/9

它将被重定向到此页面,希望该页面内的所有数据都重新加载最新的数据。

但是,angular似乎不会使用

如何重新加载当前页面?

编辑:

这就是为什么我需要重新加载页面而不是手动更新当前页面上的数据的原因。我需要在其他组件上做更新,当我做更新时,它将添加一些东西到历史组件。我需要一起刷新User组件和History组件,因为这两个组件都会受到其他组件中更改的影响。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2018-09-25 14:43:32

它将100%工作。以下代码行负责在我的项目中重新加载页面。

代码语言:javascript
运行
复制
load(val) {
if (val == this.router.url) {
  this.spinnerService.show();
  this.router.routeReuseStrategy.shouldReuseRoute = function () {
    return false;
  };
 }
}

只需在代码中使用以下部分即可。

代码语言:javascript
运行
复制
this.router.routeReuseStrategy.shouldReuseRoute = function () {
    return false;
  };
票数 31
EN

Stack Overflow用户

发布于 2019-07-23 13:37:13

做这么简单的事情有点棘手,但是用当前的解决方案重新加载和重新创建整个父组件和子组件却没有运气。

Angular Router现在提供了策略配置,以便在您导航到此用户在中建议的相同URL的情况下告诉路由器执行什么操作

此GitHub问题

..。

首先,您可以配置在设置路由器(路由器模块)时要执行的操作。

代码语言:javascript
运行
复制
@NgModule({
   imports: [RouterModule.forRoot(routes, { onSameUrlNavigation: 'reload' })],
   exports: [RouterModule]
})

或者,如果你像我一样,不想改变整个路由器模块的行为,你可以用这样的方法/函数来实现:

代码语言:javascript
运行
复制
reloadComponent() {
    this._router.routeReuseStrategy.shouldReuseRoute = () => false;
    this._router.onSameUrlNavigation = 'reload';
    this._router.navigate(['/same-route']);
}

当然你得先注射

在组件的构造函数中:

代码语言:javascript
运行
复制
// import { Router } from '@angular/router';
...
constructor(private _router: Router){}
...

不知何故,正如@Abhiz所指出的那样

您必须设置shouldReuseRoute

,只需配置Router本身,页面重载就不能正常工作

此方法

..。

我使用了一个

箭头函数

对于

因为新的TSLint规则不允许非箭头函数。

票数 64
EN

Stack Overflow用户

发布于 2020-03-13 02:22:27

如果只需要刷新整个页面,这是最简单的解决方案

代码语言:javascript
运行
复制
refreshPage() {
    window.location.reload();
   }
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52389376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档