我正在尝试从存储中“获取”一个数组,将其保存到MaschinenArray
并生成一个离子列表。我唯一的问题是,我必须在“离子服务”命令之后重新加载页面一次,否则它会以Maschinen = null
为例。
我认为如果此函数是异步的并且之前会加载HTML可能会出现问题,但如果我稍后通过按钮触发事件,它仍会显示null
。
我在构造函数上面启动了数组:
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 :(得分: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);
});
我已经在我的代码中写过这样的东西并且工作得非常好。 您可以进行chrome检查(按Ctrl + Shift + I组合)并检查console.log
更新: 还可以去chrome检查 - >应用程序选项卡 - > IndexedDB找到' maschinen'存储。检查一下。
答案 1 :(得分:0)
是的,现在我记得我猜的问题。我有一个类似的问题,我想登录并根据登录详细信息显示数据。
首先我使用了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中的存储中检索数据。 希望这会有所帮助。