جاوااسکریپت - آیونیک انگولار انتقال داده بین نماها
من میخواهم ۳ صفحه ایجاد کنم که؛
در صفحه 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;
}
