Language
: Ionic2.хотите назначить многомерный массив в ионном2
Description
: Идея заключается в том, что я пытаюсь получить данные из облака с помощью поставщика. В домашнем компоненте я вызываю метод провайдера и пытаюсь присвоить его результат переменной. Но это не работает.
Sample Code for provider's code
lastValues: any[][] = [[]];
constructor(public http: Http) {}
getLastValues() {
this.http.get("http://things.ubidots.com/api/v1.6/datasources/" + this.dataSourcaId + "/variables/?token=" + this.ubidotsToken)
.map(res => res.json().results).subscribe(data => {
this.lastValues = Array(Math.ceil(data.length/2));
let rowNum = 0;
for (let i = 0; i < data.length; i+=2) {
this.lastValues[rowNum] = Array(2);
if (data[i]) {
this.lastValues[rowNum][0] = data[i].name;
// console.log(this.lastValues[rowNum][0]);
}
if (data[i+1]) {
this.lastValues[rowNum][1] = data[i+1].name;
}
rowNum++;
}
}, (err) => {
console.log(err);
});
return this.lastValues;
}
Sample code for home component
export class HomePage {
sensors: any[][];
constructor(public navCtrl: NavController, public dataService: Data, public platform: Platform) {
}
ionViewDidLoad(){
this.platform.ready().then(() => {
this.sensors = this.dataService.getLastValues();
});
}
test() {
console.log(this.sensors);
console.log(this.dataService.getLastValues());
}
}
В методе испытаний, й первая команда печатает пустой массив, а вторая - с данными из облака. Не могу понять, что я делаю неправильно.
Благодаря ...
ли кто-то вызовом 'test', не дожидаясь' обратного вызова ionViewDidLoad', чтобы закончить? –