离子2本地存储不能按预期工作

时间:2016-04-18 14:24:09

标签: local-storage ionic2

我无法让本地存储空间正常工作。当我这样做时:



this.VEEU_ID = 'veeuID';
this.storage.set(this.VEEU_ID, 11);
alert('Storage was set to: '+JSON.stringify(this.storage.get(this.VEEU_ID)));




我明白了:



Storage was set to: {"_id":1733,"_state":1,"_result":"11","_subscribers":[]}




我认为this.storage.get(this.VEEU_ID)应该返回值11

1 个答案:

答案 0 :(得分:10)

  

从存储中获取数据是异步的,这意味着我们的应用程序将在数据加载时继续运行。承诺允许我们在数据加载完成后执行某些操作,而不必暂停整个应用程序

所以一个例子应该是:

//set a value in storage
this.storage.set("age", 25);

//get the value from storage
this.storage.get("age").then((value) => {
   alert('Storage value: '+ value);
})

可以在SqlStorage API page

上找到更多信息

Ionic 2 RC更新

自Ionic 2 RC发布以来,发生了一些变化:

  

存储已从离子角移除并放入单独的模块,@ ionic / storage。已更新启动器以添加此功能,如果您正在使用存储系统,请确保将其添加到package.json中。在这里查看更多详细信息。

以下示例显示了如何进行Ionic 2存储:

首先,我们修改位于NgModule的{​​{1}}。重要的是将src/app/app.module.ts添加为提供者:

Storage

现在我们可以将import { Storage } from '@ionic/storage'; @NgModule({ declarations: [ ... ], imports: [ IonicModule.forRoot(MyApp) ], bootstrap: [IonicApp], entryComponents: [ ... ], providers: [ Storage ] // Make sure you do that! }) export class AppModule {} 注入我们的组件:

Storage

将存储注入组件后,我们可以使用import { Component } from '@angular/core'; import { NavController } from 'ionic-angular'; import { Storage } from '@ionic/storage'; @Component({ selector: 'page-home', templateUrl: 'home.html' }) export class HomePage { constructor(public navCtrl: NavController, public storage: Storage) { } } storage.set方法:

storage.get