Ionic 视图之间的离子角传递数据

wswtfjt7  于 2022-12-09  发布在  Ionic
关注(0)|答案(2)|浏览(173)

我想创建3个页面,其中:
A页有一个表单组,填写完后点击提交按钮,就会转到B页。
在B页只有一个确认声明,所以用户只需选择同意或不同意。
如果用户在B页选择“同意”,则进入C页,并显示A页的所有信息/数据。
我的问题是,是否有可能将数据(姓名、电子邮件、id)从页面A直接传递到C,而视图的流动必须是A〉B〉C。
我能用离子角动量达到这个目的吗?

5kgi1eie

5kgi1eie1#

您可以将数据保存在页面A中的服务内的主题中,并订阅页面C中的主题以接收数据。使用ngrx或任何其他状态管理库都可以实现相同的操作。
简单示例:
data.service.ts

// the service that has the subject that keeps the data
private data$ = new BehaviorSubject<any>(null);

setData(data: any){
  this.data$.next(data);
}

getData(){
  return this.data$.asObservable();
}

page-a.component.ts

submitForm(){
  //...
  this.dataService.setData(this.form.value);
}

page-c.component.ts

ngOnInit(){
  //...
  this.dataService.getData().subscribe(data => {
    // do whatever you want with the data
  }
}
qni6mghb

qni6mghb2#

您可以创建一个静态类来传递数据。

ionic g service globaldata

您可以共享数据。
在页面A中:

import {GlobalDataServe} from 'GlobaldataServer.ts'

gotoPageB(){
  GlobalDataServe.yourDataVariable = yourDataOnPageA;
  this.route.navigate('yourPageB');
}

B页上没有任何操作;
在C页导入相同类并获取数据

import {GlobalDataServe} from 'GlobaldataServer.ts

ionViewWilLEnter(){
 this.yourData = GlobalDataServe.yourDataVariable;
}

相关问题