我无法使用forEach内部的存储空间。
但是在forEach之外,存储可以完美运行。
我的代码如下:
tmp.ts
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { Storage } from '@ionic/storage';
import { Http } from '@angular/http';
@IonicPage()
@Component({
selector: 'page-tmp',
templateUrl: 'tmp.html',
})
export class TmpPage {
url: string = "http://www.myurl.com:8282/ionic/php/";
constructor(
public navCtrl: NavController,
public navParams: NavParams,
public storage: Storage,
public http: Http
){
this.http.get(this.url).map(res => res.json())
.subscribe(res => {
res.forEach(function(valor) {
console.log('login_sucesso:'+valor.login_sucesso);
this.storage.set('login_sucesso', valor.login_sucesso);
});
});
}
}
我的控制台是:
login_sucesso:OK
ERROR TypeError: Cannot read property 'storage' of undefined
at tmp.ts:32
at Array.forEach (<anonymous>)
at SafeSubscriber._next (tmp.ts:30)
at SafeSubscriber.__tryOrUnsub (Subscriber.js:242)
at SafeSubscriber.next (Subscriber.js:189)
at Subscriber._next (Subscriber.js:129)
at Subscriber.next (Subscriber.js:93)
at MapSubscriber._next (map.js:85)
at MapSubscriber.Subscriber.next (Subscriber.js:93)
at XMLHttpRequest.onLoad (http.js:1591)
控制台的打印屏幕 console.log
我需要做的就是获取PHP信息并传递给存储。
有人可以帮我吗?
*已解决* https://stackoverflow.com/a/53161108/10609587
res.forEach((valor) => {
console.log('login_sucesso:'+valor.login_sucesso);
this.storage.set('login_sucesso', valor.login_sucesso);
});
答案 0 :(得分:0)
您可以尝试进行以下调整,以使用“胖箭头”功能吗?似乎您可能正在失去this
上下文。
res.forEach((valor) => {
console.log('login_sucesso:'+valor.login_sucesso);
this.storage.set('login_sucesso', valor.login_sucesso);
});