【发布时间】: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