मैं कोणीय के लिए नया हूं, और मैं इसे घंटों तक समझने की कोशिश कर रहा हूं। जब मैं उन्हें JSON से प्राप्त करता हूं तो मुझे संख्या ठीक से वापस करने के लिए लेट और एलएनजी चर नहीं मिल सकते हैं।

मुझे यहां से JSON मिल रहा है: https://jsonplaceholder.typicode.com/users

यहां है कंपोनेंट.एचटीएमएल...

<div *ngIf="user$">

<ul>

  <li><strong>Lat:</strong> {{ lat }}</li>
  <li><strong>Lng:</strong> {{ lng }}</li>

</ul>

  <agm-map [latitude]="lat" [longitude]="lng">
    <agm-marker [latitude]="lat" [longitude]="lng"></agm-marker>
  </agm-map>

</div>

जब मैं इस तरह से चर में मान सेट करता हूं तो यह सूची और मानचित्र तत्वों में काम करता है।

कार्य घटक। ts

export class DetailsComponent implements OnInit {

  user$: any;

  constructor(private data: DataService, private route: ActivatedRoute) { 
    this.route.params.subscribe( params => this.user$ = params.id)
  }

  ngOnInit() :void {
    this.data.getUser(this.user$).subscribe(
      data => {
        this.user$ = data 
        console.log(this.lat, this.lng);

      } 
    )

  }
        lat: number = -37.3159;
        lng: number = 81.1496;

}

लेकिन जैसे ही मैं JSON से मान प्राप्त करने का प्रयास करता हूं, चर स्ट्रिंग के रूप में वापस आ जाते हैं, और मानचित्र और मार्कर काम नहीं करते हैं लेकिन सूची तत्व करता है।

काम नहीं कर रहा घटक। ts

export class DetailsComponent implements OnInit {

  user$: any;
  lat: number;
  lng: number;

  constructor(private data: DataService, private route: ActivatedRoute) { 
    this.route.params.subscribe( params => this.user$ = params.id)
  }

  ngOnInit() :void{
    this.data.getUser(this.user$).subscribe(
      data => {
        this.user$ = data 
        this.lat = this.user$.address.geo.lat;
        this.lng = this.user$.address.geo.lng;
        console.log(this.lat, this.lng);
      } 
    )

  }

}

जब मैं विजुअल स्टूडियो कोड में किसी भी तरह से लेट और एलएनजी वेरिएबल्स पर होवर करता हूं, तो यह समान दिखता है और यह कहता है (property) DetailsComponent.lng : number या (property) DetailsComponent.lng : number

1
Vcasso 28 अक्टूबर 2018, 08:42

1 उत्तर

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

क्योंकि agm एक पूर्णांक मान की अपेक्षा करता है और आप एक स्ट्रिंग प्रदान करते हैं। मुझे लगता है कि इसे संख्या मान में बदलने का सबसे अच्छा तरीका है (यदि आपका नंबर प्रारूप डॉट . (अल्पविराम नहीं ,) का उपयोग करता है, तो + चिह्न का उपयोग करें:

this.lat = +this.user$.address.geo.lat;
this.lng = +this.user$.address.geo.lng;
3
Julius 28 अक्टूबर 2018, 06:01