2016-10-27 17 views
5

में क्वेरी पैरामीटर को कैसे जोड़/अपडेट करें मैं अपने ऐप में क्वेरी पैरामीटर का उपयोग कर रहा हूं कि मैं सेटिंग्स को नेविगेट और अपडेट करते समय बनाए रखना/अपडेट करना चाहता हूं। मैं निम्नलिखित करने के द्वारा किसी भी समस्या के बिना एक पैरामीटर जोड़ सकते हैं।Angular2

onNavigate() { 
this.router.navigate(['reports'], {queryParams: {'report': this.chart}, preserveQueryParams:true}); 
} 

हालांकि मैं रिपोर्ट पैरा को बदलने और नए ऐप को पूरे ऐप में यूआरएल में जोड़ने में सक्षम होना चाहता हूं।

preserveQueryParams: true का उपयोग करके मेरे पैरा केवल पढ़ने के लिए बनाता है। मैं मौजूदा पैरा को अपडेट करने में सक्षम होना चाहता हूं और कुछ भी खोए बिना नए जोड़ना चाहता हूं जब तक कि मैं उन्हें साफ़ नहीं करता।

मैं अपने वर्तमान सेट पैरा को खोए बिना ऐसा कैसे कर सकता हूं?

उत्तर

0

मुझे लगता है कि preserveQueryParams आवेदन की ओर से queryParams को जोड़ने/अपडेट करने के लिए नहीं है।

मौजूदा क्वेरी पैरा प्राप्त करने के लिए आपको अपना तर्क लिखना होगा और अपनी आवश्यकता के अनुसार इसे अपडेट करना होगा और फिर नेविगेट करते समय पास करना होगा।

this.route.queryParams.subscribe(qparams => { 
    this.currentQueryParams= qparams; 
    }); 

    updatedqueryParams = // use this.currentQueryParams update it to append\update new stuff 
    let navigationExtras: NavigationExtras = { 
     queryParams: updatedqueryParams 
    }; 

    // Navigate to the login page with extras 
    this.router.navigate(['<some path>'], navigationExtras); 

क्या preserveQueryParams के लिए है,

, वर्तमान वैश्विक queryParams पारित करने के लिए आप के लिए मार्ग हैं, इसलिए यदि वर्तमान URL

dashboard?debug=true&somevar=1 

है और आप नीचे की तरह कुछ लिखने है

this.router.navigate(['admin'], { 
     preserveQueryParams: true 
     } 
); 

नया मार्ग होगा, इसलिए यह क्वेरी पैराम्स को संरक्षित कर रहा है।

admin?debug=true&somevar=1 

उम्मीद है कि इससे मदद मिलती है !!

0

preserveQueryParams को बहिष्कृत कर दिया गया है, इसके बजाय queryParamsHandling का उपयोग करें।

क्वेरी पैराम्स हैंडलिंग का उपयोग अगली नेविगेशन के लिए क्वेरी पैरामीटर को संभालने के लिए रणनीति कॉन्फ़िगर करने के लिए किया जाता है।

https://angular.io/api/router/NavigationExtras