angular - 使用相同的 URL 参数重新加载 Angular 4+ 路由

标签 angular angular4-router

我一直在做一些关于重新加载 Angular 4+ 路由的研究,看起来首选方法是改为监听组件内的 URL 参数更改并在那里重新初始化组件。

我遇到的问题是,当 URL 相同(包括参数)时,我试图找到一种 DRY(不要重复自己)方法来跨多个组件进行这项工作。在 AngularJS 中,使用 UI 路由器很简单。

用例:

我有一个可以“漂浮”在任何路线上方的通知面板,当点击一个通知时,它需要转到它相关的内容——这可以是许多不同类型的内容。

例如:/posts/:id/groups/:id/users/:id

如果用户已经在查看该内容,则不会重新加载和刷新以反射(reflect)通知消息。即“John Doe 评论了您的帖子”(用户可能正在查看该帖子的过时版本)或“Jane Doe 接受了您加入某个群组的请求”(用户可能正在查看该群组的 guest View )。

当检测到路线相同时,我确实研究过使用 window.location.reload(),并且可行,但由于开销,它非常不受欢迎它会导致( Angular 重新初始化、身份验证检查、套接字重新连接等)。

如有任何建议,我们将不胜感激!

最佳答案

在这种情况下,您的路线不会改变,只是您的参数会改变。

要解决此问题,您需要订阅 ActivatedRoute 参数。

export class MyClass implements OnInit {
   constructor(private activatedRoute: ActivatedRoute ) {
        this.activatedRoute.params.subscribe((params)=>{
          console.log('updatedParams', params);
        });
    }
}

关于angular - 使用相同的 URL 参数重新加载 Angular 4+ 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46646085/

相关文章:

Angular 4在重新路由到它时调用组件方法

php - 如何将 angular 2 与 php 和 mysql db 集成

javascript - Angular 2 神秘地修改具有相同值的对象内的所有子嵌套相似对象

javascript - 从 Angular typescript 调用javascript的问题

angular - 刷新页面会导致 404 错误 - AWS - Angular 6

Angular 4 路由参数的动态数量

Angular 2+ 连续路径参数;最后一个无组件

angular - mat-tab-group 不显示所选默认选项卡的样式

Angular2 选择默认第一个选项

angular - 如何在同一组件上刷新路由更改的组件?