我想创建3个页面,其中:A页有一个表单组,填写完后点击提交按钮,就会转到B页。在B页只有一个确认声明,所以用户只需选择同意或不同意。如果用户在B页选择“同意”,则进入C页,并显示A页的所有信息/数据。我的问题是,是否有可能将数据(姓名、电子邮件、id)从页面A直接传递到C,而视图的流动必须是A〉B〉C。我能用离子角动量达到这个目的吗?
5kgi1eie1#
您可以将数据保存在页面A中的服务内的主题中,并订阅页面C中的主题以接收数据。使用ngrx或任何其他状态管理库都可以实现相同的操作。简单示例:data.service.ts
ngrx
// 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 } }
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; }
2条答案
按热度按时间5kgi1eie1#
您可以将数据保存在页面A中的服务内的主题中,并订阅页面C中的主题以接收数据。使用
ngrx
或任何其他状态管理库都可以实现相同的操作。简单示例:
data.service.ts
page-a.component.ts
page-c.component.ts
qni6mghb2#
您可以创建一个静态类来传递数据。
您可以共享数据。
在页面A中:
B页上没有任何操作;
在C页导入相同类并获取数据