আমার কৌণিক 2 রুটের টেম্পলেটগুলির একটিতে ( ফার্স্ট কম্পোনেন্ট ) আমার একটি বোতাম আছে
first.component.html
<div class="button" click="routeWithData()">Pass data and route</div>
আমার লক্ষ্য অর্জন:
বাটনে ক্লিক করুন -> ডেটা সংরক্ষণের সময় এবং নির্দেশক হিসাবে অন্য উপাদানটি ব্যবহার না করেই অন্য কোনও উপাদানে যান route
এটাই আমি চেষ্টা করেছিলাম ...
1 ম প্রচার
একই দৃশ্যে আমি ব্যবহারকারীর মিথস্ক্রিয়ার ভিত্তিতে একই ডেটা সংগ্রহ করতে সঞ্চয় করছি।
first.component.ts
export class FirstComponent {
constructor(private _router: Router) { }
property1: number;
property2: string;
property3: TypeXY; // this a class, not a primitive type
// here some class methods set the properties above
// DOM events
routeWithData(){
// here route
}
}
সাধারণত আমি রুট চাই SecondComponent দ্বারা
this._router.navigate(['SecondComponent']);
অবশেষে দ্বারা তথ্য পাস
this._router.navigate(['SecondComponent', {p1: this.property1, p2: property2 }]);
যদিও পরামিতিগুলির সাথে লিঙ্কটির সংজ্ঞা থাকবে
@RouteConfig([
// ...
{ path: '/SecondComponent/:p1:p2', name: 'SecondComponent', component: SecondComponent}
)]
এই পদ্ধতির সমস্যাটি হ'ল আমি অনুমান করি যে আমি জটিল ডেটা (যেমন সম্পত্তি 3 এর মতো কোনও বস্তু ) ইন-ইউআরএল পাস করতে পারি না ;
2ND প্রচার
ফার্স্ট কম্পোনেন্টে নির্দেশনা হিসাবে দ্বিতীয় বিকল্পকে অন্তর্ভুক্ত করার বিকল্প থাকবে ।
<SecondComponent [p3]="property3"></SecondComponent>
তবে আমি চাই রুট উপাদানে না এটা অন্তর্ভুক্ত!
3 আরডি অ্যাপ্রোচ
আমি এখানে দেখতে সবচেয়ে কার্যকর সমাধানটি হ'ল কোনও পরিষেবা (উদাহরণস্বরূপ ফার্স্ট কম্পোমেনট সার্ভিস) ব্যবহার করা
- সংরক্ষণ FirstComponent ডাটা routeWithData উপর (_firstComponentService.storeData ()) ()
- উদ্ধার তথ্য (_firstComponentService.retrieveData ()) ngOnInit () মধ্যে SecondComponent
যদিও এই পদ্ধতিরটিকে পুরোপুরি কার্যকর মনে হচ্ছে, আমি লক্ষ্য করি যে এটি লক্ষ্য অর্জনের সবচেয়ে সহজ / সবচেয়ে মার্জিত উপায় কিনা।
সাধারণভাবে আমি জানতে চাই যে উপাদানগুলির মধ্যে ডেটা পাস করার জন্য আমি অন্যান্য সম্ভাব্য পন্থাগুলি মিস করছি কিনা , বিশেষত কোডের কম সম্ভাব্য পরিমাণের সাথে
state
পরীক্ষা করে রুটগুলির মধ্যে ডেটা পাস করার জন্য নতুন বৈশিষ্ট্য রয়েছে । এখানে কিছু দরকারী তথ্য