আমার মত কারও জন্য এই প্রশ্নটি সন্ধান করার জন্য নিম্নলিখিতটি কার্যকর হতে পারে।
আমারও অনুরূপ সমস্যা হয়েছিল এবং প্রাথমিকভাবে এখানে অন্য উত্তরের পরামর্শ অনুসারে লোকেশন.গো এবং লোকেশন.রেপসস্টেট ব্যবহার করার চেষ্টা করেছি। তবে আমি সমস্যার মধ্যে পড়েছিলাম যখন আমাকে অ্যাপের অন্য পৃষ্ঠায় নেভিগেট করতে হয়েছিল কারণ ন্যাভিগেশনটি বর্তমান রুটের সাথে সম্পর্কিত ছিল এবং বর্তমান রুটটি লোকেশন.গো বা লোকেশন.র্লেসস্টেট দ্বারা আপডেট করা হয়নি (রাউটারটি কিছুই জানে না) এগুলি ইউআরএল-এ কী করবে)
সংক্ষেপে আমার একটি সমাধানের দরকার ছিল যা রুট প্যারামিটার পরিবর্তিত হলে পৃষ্ঠা / উপাদানটি পুনরায় লোড না করে তবে অভ্যন্তরীণভাবে ডিআইডি রুট রাষ্ট্র আপডেট করে।
আমি ক্যোয়ারী প্যারামিটারগুলি ব্যবহার করে শেষ করেছি। আপনি এটি সম্পর্কে এখানে আরও জানতে পারেন: https://angular-2-training-book.rangle.io/handout/routing/query_params.html
সুতরাং আপনার যদি কোনও অর্ডার সংরক্ষণ এবং অর্ডার আইডি পাওয়ার মতো কিছু করার দরকার হয় তবে আপনি নীচের চিত্রের মতো আপনার পৃষ্ঠার ইউআরএল আপডেট করতে পারেন। কোনও মানচিত্রে একটি কেন্দ্রের অবস্থান এবং সম্পর্কিত ডেটা আপডেট করা একই রকম হবে
// let's say we're saving an order. Initally the URL is just blah/orders
save(orderId) {
// [Here we would call back-end to save the order in the database]
this.router.navigate(['orders'], { queryParams: { id: orderId } });
// now the URL is blah/orders?id:1234. We don't reload the orders
// page or component so get desired behaviour of not seeing any
// flickers or resetting the page.
}
এবং আপনি এটি এনজিওনাইট পদ্ধতিতে যেমন ট্র্যাক করে রাখেন:
ngOnInit() {
this.orderId = this.route
.queryParamMap
.map(params => params.get('id') || null);
// orderID is up-to-date with what is saved in database now, or if
// nothing is saved and hence no id query paramter the orderId variable
// is simply null.
// [You can load the order here from its ID if this suits your design]
}
আপনার যদি নতুন (অরক্ষিত) অর্ডার দিয়ে অর্ডার পৃষ্ঠায় সরাসরি যেতে হয় তবে আপনি যা করতে পারেন:
this.router.navigate(['orders']);
বা যদি আপনাকে কোনও বিদ্যমান (সংরক্ষিত) আদেশের জন্য অর্ডার পৃষ্ঠায় সরাসরি যেতে হয় তবে আপনি যা করতে পারেন:
this.router.navigate(['orders'], { queryParams: { id: '1234' } });