मैं एक फायरस्टोर क्वेरी से JSON ऑब्जेक्ट बना रहा हूं जिसे मैं अपने कोणीय ऐप के टेम्पलेट में प्रदर्शित करना चाहता हूं। जब मैं कंसोल लॉग ऑब्जेक्ट को प्रकट करता हूं, लेकिन इसे टेम्पलेट में इंटरपोलेट करने का प्रयास कुछ भी प्रस्तुत नहीं करता है।

नीचे वह फ़ंक्शन है जिसका उपयोग मैं शहरों को प्राप्त करने के लिए कर रहा हूं।

getCities() {
    this.db.collection("Cities").orderBy('count', "desc").onSnapshot(function(doc) {
      let items = {}
      doc.forEach(function(data){
       items[data.id] = data.data().count
      })
      this.cities = items;
      console.log(this.cities);
      })
  }

इसे प्रक्षेपित करने के लिए मेरा कोड यहां दिया गया है (सीएसएस आदि को सुंदर बनाने की आवश्यकता है) लेकिन यह कुछ भी नहीं दिखाता है।

 <div *ngFor="let item of cities| keyvalue">
  {{item.key}}:{{item.value}}
</div>

कंसोल लॉग इसे आउटपुट करता है

{Christchurch: 27, LowerHutt: 21, Auckland: 10, Wellington: 4, Tauranga: 1, …}

मैंने जो JSON ऑब्जेक्ट बनाया है। मुझे यकीन नहीं है कि मैं इसे HTML दस्तावेज़ में इंटरपोलेट क्यों नहीं कर सकता। मैंने डेटाबेस का परीक्षण और अद्यतन भी किया है, कंसोल लॉग अपडेट करता है, इसलिए मुझे लगता है कि अगर मैं इसे HTML में इंटरपोलेट कर सकता हूं, तो पेज रीयल टाइम में अपडेट हो जाएगा जो मैं चाहता हूं।

0
Hamish McBrearty 16 अप्रैल 2020, 05:57

1 उत्तर

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

कार्य का अपना दायरा है(यह)। तीर कार्यों का उपयोग करने का प्रयास करें।

getCities() {
  this.db.collection("Cities").orderBy('count', "desc").onSnapshot((doc) =>
  {
    let items = {};
    doc.forEach((data) => {
     items[data.id] = data.data().count
    });
    this.cities = items;
    console.log(this.cities);
  });
}
2
muravev 16 अप्रैल 2020, 06:44