2017-10-04 79 views
2

我想从存储获取一个数组,并将其保存到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; 
    }); 

任何想法?或者构造函数可能是初始化一些变量的错误地点?

+0

https://ionicframework.com/docs/storage/ – felix9607

+0

你需要等待storage.ready之前取东西 – TomG

+0

没有帮助,我试过这已经出 – felix9607

回答

0

你真的需要声明该数组吗?

如果你已经将其存储在正确的存储,您可以检索对象数组,

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的存储。核实。

+0

这并没有帮助悲伤。要清楚:如果调用页面:MaschineParkPage,我点击例如一个按钮,在控制台中登录数组,然后它说'空'。如果我尝试添加一个对象,我得到的错误:无法读取属性'推'null。它看起来像阵列没有initalized,直到我点击F5一次,一切正常...... – felix9607

+0

索引数据库中没有“Maschinen”存储。但是在Web SQL部分的_ionickv中,我找到了我的MaschinenArray条目。 – felix9607

+0

@ felix9607是的,它对_ionickv和检查我的第二个答案。 –

0

是的,现在我记得我猜的问题。我有一个类似的问题,我想根据登录信息登录和显示数据。

  1. 首先我使用了location.reload();在登录后重新加载整个应用程序,这是不好的。

  2. 然后我发现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数据。 希望这有助于。

+0

我要试一试!感谢您的帮助到目前为止 – felix9607

+0

location.reload()杀死sqlite cordova插件。我建议不要使用它(如果你仍然这样做) – TomG

+0

@TomG现在我使用事件不location.reload() –

相关问题