如何重新加载当前页面?

2024-03-12

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

因此,我没有向父级发出更改并更新某些字段,而是使用“重新加载”当前页面

private route: ActivatedRoute;

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

基本上,它重定向到当前页面。例如当前页面是http://web.info/admin/user/edit/9 http://web.info/admin/user/edit/9它将被重定向到此页面,希望该页面内的所有数据都重新加载最新数据。

但似乎角度不会重定向/重新加载同一页面router.navigate

我应该如何重新加载当前页面?

Edit:

这就是为什么我需要重新加载页面而不是手动更新当前页面上的数据的原因。我需要对其他组件进行更新,当我进行更新时,它会向历史组件添加一些内容。我需要一起刷新用户组件和历史组件,因为这两个组件都受到其他组件中更改的影响。


做一些如此简单的事情有点棘手,但没有运气尝试使用当前的解决方案重新加载和重新创建整个父级和子级组件。

Angular Router 现在提供策略配置,告诉路由器在您导航到与该用户建议的相同 URL 时该怎么做这个 GitHub 问题 https://github.com/angular/angular/issues/13831#issuecomment-422683314.

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

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

或者,如果您像我一样并且不想更改整个路由器模块行为,您可以使用如下方法/函数来实现:

reloadComponent() {
    this._router.routeReuseStrategy.shouldReuseRoute = () => false;
    this._router.onSameUrlNavigation = 'reload';
    this._router.navigate(['/same-route']);
}

当然你必须先注入Router在组件的构造函数中:

// import { Router } from '@angular/router';
...
constructor(private _router: Router){}
...

不知何故,正如@Abhiz 所指出的你必须设置shouldReuseRoute,仅配置路由器本身,页面重新加载不起作用这种方法.

我用过一个箭头函数 for shouldReuseRoute因为新的 TSLint 规则不允许非箭头函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何重新加载当前页面? 的相关文章

随机推荐

  • Haxe 自定义元数据到宏调用

    假设我已经创建了一个可以像这样使用的构建宏 build macros SampleMacro build arg class Main 是否可以将其转换为自定义的速记元数据 samplemacro arg class Main 有这方面的文
  • 找出您在 Git 中克隆的原始存储库的名称

    当您使用语法进行第一次克隆时 git clone username server gitRepo git 是否可以使用本地存储库查找该初始克隆的名称 所以在上面的例子中 找到gitRepo git git config get remote
  • Scala 集合中的大小和长度生成相同的字节码吗?

    我理解 根据以下问题 这些方法可能被视为 等效 或 同义词 尽管不是 相同 是调用 collection size 或 collection length 的最佳 Scala 约定 https stackoverflow com q 196
  • /fp:fast 与 :fp:precise 我会遇到什么样的错误?

    我想知道如果设置 fp fast 而不是 fp precise 会遇到什么样的错误 我在 MSV10 下工作 我对最大位数等于 8 的双精度数执行 操作 例如 1 4379294 货币汇率 你总是遇到同样的错误double计算 将结果转换为
  • 创建 C++ 整数类,其行为与整型整数类型完全相同

    我几天前在面试时向我的朋友提出过一个小而令人讨厌的问题 最初的面试问题是 以下代码的输出是什么 int i 2 i i i 正确答案是 2 2 1 1 6 即后自增在赋值之前应用两次 但在加法之后应用 然后我想创建一个简单的类 携带一个整数
  • 如何在由分隔符分隔的值周围添加双引号?

    我采用一个字符串 其值由 我需要在它们的 周围 放置双引号 并在每次分割后进行修剪 这是我的实际代码 input TAG1 TAG2 output input echo output 正确显示 TAG1 TAG2 But 如果我使用它不起作
  • Kibana 服务器尚未准备好甚至启动

    我有1个主节点 master 和1个数据节点 node 1 我使用centos7作为操作系统 主控 9200 root localhost kibana curl localhost 9200 name master cluster nam
  • 动态替换 C# 方法的内容?

    我想要做的是更改 C 方法在调用时的执行方式 以便我可以编写如下内容 Distributed public DTask
  • 此 C# 编码代码的 PHP 等效项是什么?

    我想将以下 C 代码转换为 PHP C 是 byte operation UTF8Encoding UTF8 GetBytes getfaqs byte secret UTF8Encoding UTF8 GetBytes Password
  • Selenium ChromeDriverManager 不下载最新版本的 ChromeDriver

    我有一个错误 E selenium common exceptions SessionNotCreatedException Message session not created This version of ChromeDriver
  • 如何从 Angular 中的子路由组件访问父组件属性?

    我是 Angular 的新手 我被困在那里 我知道如何通过将 parentData var 注入子选择器 来在父组件和子组件之间共享数据 但是当使用路由时 我只有一个路由器出口 无法将 parentData 绑定到它 因为它会引发错误 从子
  • 如何将 NSURLSessionConfiguration 配置到 NSObject 类中?

    我想得到服务器响应NSObject当我收到响应时 它已返回到 viewController as 我在服务器调用上实现NSObject上课然后我打电话给NSObject方法但在服务器响应之前我的NSString已返回为null NSObje
  • Python 中的非二叉树数据结构

    有谁知道我如何重新创建这个 最终目标是遍历树并计算每个端点 在这种情况下3因为1 3 2都是端点 如果您不想使用简单的列表 您可以构建一个基本类 就像是 class NonBinTree def init self val self val
  • 如何在 Fragment 中使用 MediaPlayer 到 SurfaceView

    因为我希望能够传递播放视频的 MediaPlayer 所以我想在播放视频的片段中使用 SurfaceView 而不是 VideoView 我看了一个先前的问题 https stackoverflow com questions 167005
  • 操作处理程序不适用于视图本身

    操作处理程序不能直接在视图实例上工作吗 我想将其直接附加到整个视图本身 而不是在视图中附加操作处理程序 示例 jsFiddle http jsfiddle net t3wdG http jsfiddle net t3wdG UPDATE 我
  • from 子句中的 JPA 子查询

    我们正在开发一个使用 EJB 连接到数据库的 Web 应用程序 在我们的数据库模型中 我们有一个移动设备表 另一个具有功能的表 最后一个将功能值与手机型号进行映射 模型 id model 特征 id feature model featur
  • 从cfscript中的coldfusion newQuery()获取结果元数据

    关于 CFscript 的文档在文档中有点稀疏 并且搜索 cfscript 特定答案会在 CF 标签答案中丢失 所以这是我的问题 如何从使用脚本执行的查询中获取结果元数据 使用我可以添加的标签result myNamedResultVar
  • 如何在 Swift 中迭代对象数组?

    我有物体 var person1 Person person1 name Joe person1 lastName Doe person1 age 21 var person2 Person person2 name Julia perso
  • 像文字处理器一样格式化文本的 iPhone 应用程序

    很抱歉提出这样的一般性问题 但我想知道是否 以及如何 可以编写一个 iPhone 应用程序 在不同页面上格式化 txt 文件 就像 Microsoft Word 在布局模式下打开一个新文档时所做的那样 并且粘贴一个txt文件 换句话说 我不
  • 如何重新加载当前页面?

    我有一个用于编辑用户的页面 里面有一些子组件 每个子组件都可以更改其父组件或对其父组件产生一些影响 因此 我没有向父级发出更改并更新某些字段 而是使用 重新加载 当前页面 private route ActivatedRoute reloa