В настоящее время я работаю в простом приложении в Ionic, которое извлекает данные из файла JSON и отображает их на экране. Когда я запускаю приложение в ionic serve / lab, приложение работает отлично, проблема возникает, когда я пытаюсь подражать ему или запускаю его на реальном телефоне.
Не работает на эмуляторе
Работа над ионной лабораторией / подача
Проблема, я думаю, может быть связана с отсутствием «Access-Control-Allow-Origin» или совместимостью с CORS, но я не знаю, что делать, чтобы это исправить, поэтому буду признателен за ваши знания в этом вопросе.
Это мой код для файла .ts:
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
export class Page4Page {
datalamp: Array<any> = [];
datosarr: Array<any> = [];
constructor(public navCtrl: NavController, public navParams: NavParams, private http: Http) {}
ionViewDidLoad() {
this.getdata();
console.log('ionViewDidLoad Page4Page');
}
getdata() {
this.http.get('http://caidalibre.000webhostapp.com/data3.json')
.map((res) => res.json())
.subscribe(data => {
this.datalamp = data;
console.log(this.datalamp)
this.getlastdata();
})
}
getlastdata() {
this.datosarr.length = 0;
console.log(this.datosarr)
let lastdata = this.datalamp.slice(-1)[0]
let lasttemp = JSON.parse(lastdata.temperatura);
let lasthum = JSON.parse(lastdata.humedad_relativa);
let lastintesidad = JSON.parse(lastdata.intensidad_luminosa);
let lastbateria = JSON.parse(lastdata.bateria);
let lastvoltaje = JSON.parse(lastdata.voltaje_panel);
this.datosarr.push(lasttemp, lasthum, lastintesidad, lastbateria, lastvoltaje)
console.log(this.datosarr)
}
}
и для файла HTML:
<ion-content padding>
<ion-item *ngFor="let dat of datosarr">
<p>{{datosarr}}</p>
</ion-item>
</ion-content>