2016-10-21 10 views
7

Angular2 RC1 में पर घटक फिर से लोड करके बुला एक मार्ग लिंक हमेशा एक घटक फिर से लोड करने का कारण बनता है कम करने के लिए:फोर्स Angular2 नेविगेट

<a [routerLink]="['/page', {id: 1}]">A link </a> 

Angular2, कोई भी आर सी का उपयोग करना, घटक पुनः लोड नहीं है, तो अपने आप को अपने नेविगेट विभिन्न मानकों के साथ। क्या पुनः लोड व्यवहार वापस पाने का कोई तरीका है?

मैं इस से निपटने का दूसरा तरीका समझता हूं, सक्रिय रूट से सदस्यता लेता हूं और परिवर्तनीय परिवर्तनों का पता लगाता हूं, लेकिन इससे जटिलता में घटक तर्क बढ़ता है।

+1

कि नई रूटर में समर्थित नहीं है, लेकिन मुझे लगता है कि अंत में समर्थन करने के लिए योजनाओं के बारे में विचार-विमर्श को देखा। –

+1

आपने इसे कैसे पूरा किया? – user2180794

+0

क्या आप कृपया उस कार्यक्षमता को प्राप्त करने के बारे में बता सकते हैं? मुझे एक ही समस्या का सामना करना पड़ रहा है, मेरे पास एकाधिक मार्गों से जुड़ा एक घटक है, जो वर्तमान मार्ग के आधार पर विभिन्न सर्वर डेटा के साथ लोड हो जाता है। – Hazerd

उत्तर

1

ऐसा करने का एक आसान तरीका टेम्पलेट को * ngIf का उपयोग करके पुनः लोड करने के लिए मजबूर करना है। आपको एक चर की आवश्यकता होगी जो "घटक को बंद और चालू करता है"। यदि इस बंद/व्यवहार से पहले चर के मान बदल गए हैं, तो दृश्य फिर से होने पर उन्हें प्रस्तुत किया जाएगा।

2

आप 'ActivatedRoute' और कैसे यह जटिल होगा अपने कोड उल्लेख किया है हालांकि, मुझे लगता है कि यह अन्य लोगों कि इस समस्या का सामना कर रहे हैं जब वे मेरे जैसे :), आपके सवाल तक पहुंच रहे हैं मदद मिलेगी।

This topic आपके प्रश्न का उत्तर देगा।

नीचे यह कोड (ऊपर दिए गए विषय से चिपकाया गया), जहां 'जादू' हो रहा है। यदि आप इस subsribe फ़ंक्शन में अपना 'रीलोड' कोड डाल देंगे, तो आपका घटक पुनः लोड हो जाएगा।

ngOnInit() { 
    this.sub = this.route.params.subscribe(params => { 
     this.id = +params['id']; // (+) converts string 'id' to a number 
     // Some 'reload' coding 
     // In a real app: dispatch action to load the details here. 
    }); 
}