我有一个名为"leave()"的方法,其中我们将页面重定向到dashboard.

还有另一个场景,它由信号器事件(Subject)调用.在这种情况下,页面重定向成功,但仪表板页面上的组件加载不正确.

在下面的代码中,"OnLeaveAll"是"hubService"中的主题类型.

ngOnInit(): void {
    this.hubService.OnLeaveAll.subscribe(x => {
      this.leave();
    });
}

leave() {
    this.router.navigate(['app', 'dashboard']);
}

推荐答案

判断devtools控制台.可能有一个关于Angular 区域的错误.

import { NgZone } from '@angular/core';

constructor(private ngZone: NgZone) {
}

ngOnInit(): void {
  this.hubService.OnLeaveAll.subscribe(x => {
    this.ngZone.run(() => {
      this.leave();
    });
  });
}

leave() {
  this.router.navigate(['app', 'dashboard'], { replaceUrl: true });
}

你可以在下面的链接中找到更多信息.

https://angular.io/guide/zone#ngzone-run-and-runoutsideofangular

Angular相关问答推荐

如何在投影项目组周围添加包装元素?

以Angular 动态添加和删除组件形状元素

AOS中的数据绑定--可能吗?

如何从URL中角下载图片?

用于 React 的 ngx-extended-pdf-viewer

使用 primeng Apollo 主题进行实时部署时多次加载 theme.css 和 preloading.css 文件

PrimeNG 避免在同一位置使用不同键的 cogo toast 重叠

Angular 13 - 使用 PUT 时出现 400 错误(错误请求)

如何有条件地更新 Angular 路由解析器数据?

Angular:为什么在我的自定义 ErrorHandler 中订阅主题不触发?

将 html ngModel 值传递给服务Angular

类继承支持

可从 Angular2 中的

如何设置Angular 4背景图片?

Angular 2.0 中 $scope 的替代品

如何在Angular 4中为数字管道指定语言环境千位分隔符

Mat-autocomplete - 如何访问选定的选项?

错误:angular2 中没有 HttpHandler 的提供者

Angular 2:将外部js文件导入组件

如何在 Angular CLI 6: angular.json 中添加 Sass 编译?