离子存储得到不工作,直到重新加载页面
问题描述:
我想从存储获取一个数组,并将其保存到MaschinenArray
并生成一个离子列表。我唯一的问题是,我不得不在一次“离子发球”命令后重新加载页面,否则它会以Maschinen = null
为例。离子存储得到不工作,直到重新加载页面
我认为这可能是一个问题,如果这个功能是异步和HTML将在之前加载,但如果我稍后通过按钮触发事件,它仍然说null
。
我inititalize构造上面的数组:
export class MaschinenParkPage {
maschinenArray : Maschine[] = [];
constructor(private menu: MenuController, public alertCtrl: AlertController, public navCtrl: NavController, private storage: Storage) {
this.storage.get('maschinen').then((buffer) => {
this.maschinenArray = buffer;
});
任何想法?或者构造函数可能是初始化一些变量的错误地点?
答
你真的需要声明该数组吗?
如果你已经将其存储在正确的存储,您可以检索对象数组,
export class MaschinenParkPage {
maschinenArray : any;
constructor(private menu: MenuController, public alertCtrl: AlertController, public navCtrl: NavController, private storage: Storage) {
this.storage.get('maschinen').then((buffer) => {
this.maschinenArray = buffer;
console.log(this.maschinenArray);
});
我已经写了这样的事情在我的代码已经和工作完全正常。 你可以去检查铬(按Ctrl +妈+ I),并检查执行console.log
更新: 也去检查铬 - >应用程序选项卡 - > IndexedDB的发现“MASCHINEN的存储。核实。
答
是的,现在我记得我猜的问题。我有一个类似的问题,我想根据登录信息登录和显示数据。
首先我使用了location.reload();在登录后重新加载整个应用程序,这是不好的。
然后我发现Events from ionic angular这解决了我的问题。你可以试试这个。 示例代码,
在我的侧栏控制器,其中我订阅它
this.events.subscribe('user:login',() => {
this.ngOnInit();
});
在我的登录控制器
this.storage.ready().then(() => {
this.storage.set('loginData', response).then(()=>{
this.events.publish('user:login');
});
});
根据我的代码检索存储在ngOnInit数据。 希望这有助于。
https://ionicframework.com/docs/storage/ – felix9607
你需要等待storage.ready之前取东西 – TomG
没有帮助,我试过这已经出 – felix9607