कोणीय पथ पैरामीटर को मिलाना?
कोणीय सामग्री डॉक्स एप्लिकेशन इस तरह से पथ मापदंडों को जोड़ती है:
// Combine params from all of the path into a single object.
this.params = combineLatest(
this._route.pathFromRoot.map(route => route.params), Object.assign);
यहाँ एक उदाहरण है: https://github.com/angular/material.angular.io/blob/master/src/app/pages/component-category-list/component-category-list.ts
हालाँकि यह त्रुटि उत्पन्न करता है:
@deprecated - resultSelector अब समर्थित नहीं है, इसके बजाय मैप करने के लिए पाइप
तो चारों ओर पाने के लिए ऐसा करना संभव है:
this.params = combineLatest(
this._route.pathFromRoot.map(route => route.params)
).pipe(
map(Object.assign)
);
जैसा कि यहां प्रलेखित किया गया है: @Leprecated - resultSelector के लिए कम्बाइन करने के लिए कम्बाइन करने के लिए कम्बाइन करें।
हालाँकि यह त्रुटि पैदा करता है:
ERROR TypeError: SafeSubscriber._next (घटक-श्रेणी-list.ts: 50) पर अपरिभाषित की संपत्ति के नाम को पढ़ नहीं सकते। SafeSubscriber .__ tryOrUnsub (Subscriber.js: 183) पर SafeSubscriber.next (Subscriber.js: 122) की सदस्यता लें। MapSubscriber.next (Subscriber.js: 72) पर सब्सक्राइबर .next (सबस्क्राइबर। js: 49) MapSubscriber._next (map.js: 35) पर MapSubscriber.next (सबस्क्राइबर .js: 49) CombineLatestSubscriber.notifyNext पर मिलाएं। : BeSviorSubject। सदस्यता लें
तो ऐसा लगता है sectionकि URL पैरामीटर जो घटक की तलाश कर रहा है, उसे रीफैक्टरिंग के बाद कैप्चर नहीं किया जा रहा है। विचार?
जवाब
इस Object.assignतरह से गुजरते समय मापदंडों को नष्ट होना चाहिए :
// Combine params from all of the path into a single object.
this.params = combineLatest(
this._route.pathFromRoot.map(route => route.params)).
pipe(map((params:Params[])=>Object.assign({}, ...params)));