【问题标题】:How do I refresh the page when a user is routed in Ionic 5 using Angular使用Angular在Ionic 5中路由用户时如何刷新页面
【发布时间】:2020-07-10 04:21:28
【问题描述】:

我在Page B 上,当在Page B 中执行操作时,我将用户路由到Page A。如何刷新Page A 以便获取新数据。我编写了一个服务来获取我在Page A 的构造函数中调用的数据,如下所示。

页面 A

Page A的构造函数

data: any = [];

constructor(
   private dataService: DataService,
   private route: ActivatedRoute,
 ){
   this.route.params.subscribe(val => {
     this.dataService.getData().subscribe(res => this.data = response);
  });
}

页面 B

Page B 中,我正在执行一个按钮操作以路由到Page A。有了这个,我期待它在执行此按钮操作时刷新Page A。有人可以帮忙吗?

onSubmit() {
  this.router.navigateByUrl('/', {
    skipLocationChange: true
  }).then(() => {
    this.router.navigate(['page-a']);
  });
}

另外,我确实在 app-routing.module.ts 文件中将此 onSameUrlNavigation 设置为 reload

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

【问题讨论】:

  • 您还没有展示新数据是如何生成或处理的。 Angular 不会只刷新页面,除非它检测到更改。
  • 所以,当页面在Page A 中加载时,我将服务获取的数据推送到一个数组中。当我在Page B 中添加新数据时,如何检测该数组中的变化?通过服务将数据从页面 A 传递到页面 B 会是一个好方法吗?因为它们都是单独的组件。真的在寻求帮助,你能建议吗? @约翰彼得斯
  • A 页的变量是关键。它必须改变以获得新的观点。你怎么改?直接从B?事件最适合组件间通信。阅读这篇文章dev.to/jwp/the-angular-event-service-ech

标签: angular angular8 angular-routing ionic5


【解决方案1】:

让我们试试这个:

你将你在页面A构造函数中编写的代码移动到ngOnInit()中,然后检查

【讨论】:

    【解决方案2】:

    您将代码移动到 ionViewDidEnter() 中,该代码写入 constructor(){/Move this code/} 并尝试将一个页面导航到另一个页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 2021-12-13
      • 1970-01-01
      • 2019-01-01
      • 2016-12-22
      相关资源
      最近更新 更多