جاوااسکریپت - آیونیک انگولار انتقال داده بین نماها


من میخواهم ۳ صفحه ایجاد کنم که؛

در صفحه A یک گروه فرم وجود دارد، بعد از پر شدن آن و کلیک روی دکمه ارسال، سپس به صفحه B خواهد رفت.

در صفحه B فقط یک بیانیه تأیید وجود دارد. بنابراین کاربر فقط باید گزینه موافق یا مخالف را انتخاب کند.

اگر کاربر در صفحه B گزینه موافقت را انتخاب کند، سپس به صفحه C میرود و تمام اطلاعات/دادهها از صفحه A نمایش داده میشود.

سؤال من این است که آیا ممکن است دادهها (نام، ایمیل، شناسه) از صفحه A مستقیماً به C منتقل شوند در حالی که جریان نمایشها باید A > B > C باشد.

آیا میتوانم این را با آیکونیک انگولار انجام دهم؟

پاسخ شماره ۱

شما میتوانید دادهها را در یک موضوع داخل یک سرویس در صفحه A ذخیره کنید و در صفحه C به آن موضوع مشترک شوید تا دادهها را دریافت کنید. همین کار میتواند با ngrx یا هر کتابخانه مدیریت وضعیت دیگری نیز انجام شود.

مثال ساده:

داده.سرویس.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();
}

صفحه-a.component.ts

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

صفحه-c.component.ts

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

پاسخ شماره ۲

شما میتوانید یک کلاس ایستا ایجاد کنید تا دادههای خود را منتقل کنید.

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;
}