मैं एंगुलर 10 प्रोजेक्ट पर काम करता हूं। मुझे अपने बैकएंड से एक साधारण के साथ डेटा मिलता है

return this.http
      .get<{ returned: Animal[] }>('animals')
      .pipe(map((res) => res.returned.map((value) => value)));

यह मेरे रिज़ॉल्वर द्वारा कॉल है और मेरे रूटिंग मॉड्यूल में राउटर के माध्यम से भेजें

resolve: {
        animals: AnimalResolver,
}

मुझे this.route.snapshot.data.animals के साथ समाधान डेटा मिलता है

मैं AsyncPipe के उपयोग के लिए एक Obervable<Animal[]> रखना चाहता हूं। रिज़ॉल्वर द्वारा टाइप रिटर्न एक Observable<Animal[]> है, लेकिन मुझे इस त्रुटि को हल करने के लिए एक त्रुटि अमान्य पाइप तर्क मिलता है, जिसे मुझे बनाने की आवश्यकता है:

of(this.route.snapshot.data.animals);

क्यों?

2
Alphablony 28 जुलाई 2020, 13:17

1 उत्तर

सबसे बढ़िया उत्तर

इस मामले में आपको this.route.data देखने योग्य उपयोग करने की आवश्यकता है जहां route ActivatedRoute जबकि ActivatedRouteSnapshot वर्तमान मार्ग का केवल "स्थिर" डेटा है और यहां कोई अवलोकन योग्य नहीं हैं।

this.animals$ = this.route.data
  .pipe(map(data => data.animals));
1
vadimk7 28 जुलाई 2020, 13:37