2016-05-14 70 views
2

我有两个文本字段,必须从它们中取数据并使用LocalStorage存储它。 所以这里是我已经实现的代码,但它不工作,你可以告诉我解决它。使用LocalStorage离子2

在page1.html

<ion-input [(ngModel)]="hour" type="number" ></ion-input> 

<ion-input [(ngModel)]="min" type="number" ></ion-input> 

<button clear (click)="setTime(hours.value,min.value)" item-right >settime</button> 

在pag1.ts

export class Page1 { 

    public hour; 
    public min; 
    public local:Storage; 

    constructor(public nav: NavController, translate:TranslateService) {} 


setTime(hour, min){ 

    if(hour<24 && hour>0 && min>0 && min<61){ 
     this.local.set('hour',JSON.stringify(hour)); 
     this.local.set('min',JSON.stringify(min)); 
    } 
    else{ 
    console.log("OUTOF LIMIT TIME EXCEPTION the values are "+hour+min); 
    } 
} 

    } 

在控制台日志,它显示 [Object Object]

,并请同时告诉约得到 from localStorage。 在此先感谢:-)

回答

4

您需要同时导入StorageLocalStorage,你需要添加到您的构造函数:与

this.local = new Storage(LocalStorage); 

文档和例子在这里:http://ionicframework.com/docs/storage/

+0

哦..感谢..像一个魅力:-) –

+1

请添加一个新的链接,找不到资源了。 – MattJ

+0

或者你可以搜索文档,找到新的链接,并更新评论 –

7

以前的答案已经过时,这里是一个更新。

遵循以下步骤:

  1. 安装存储模块

    $ cordova plugin add cordova-sqlite-storage --save 
    $ npm install --save @ionic/storage 
    
  2. 添加存储到app.module。TS

    import { Storage } from '@ionic/storage'; 
    
    @NgModule({ 
    
        ... 
    
        providers: [ 
        Storage 
        ] 
    }) 
    export class AppModule {} 
    
  3. 使用它:)

    import { Storage } from '@ionic/storage'; 
    
    export class MyApp { 
        constructor(storage: Storage) { 
    
        // set  key value 
        storage.set('myKey', 'myVal'); 
    
        // get value 
        storage.get('myKey').then((val) => { 
         console.log(val); 
        }) 
    } 
    } 
    

找到更多关于http://ionicframework.com/docs/v2/storage/

+0

好!如何检索变量的值? console.log()的作品,但不作为回报,变量,没有... –

1

其实你需要等待存储做好准备以及

正如安装前所述l在

,如果你打算使用SQLite为此,首先

$ cordova plugin add cordova-sqlite-storage --save 

如果没有跳过它,继续做

$ npm install --save @ionic/storage 

下将其添加到供应商列表中你NgModule

import { Storage } from '@ionic/storage'; 

@NgModule({ 

... 

providers: [ 
    Storage 
] 
}) 
export class AppModule {} 

然后你可以继续在需要的地方注入它

import { Storage } from '@ionic/storage'; 

export class MyApp { 
constructor(storage: Storage) { 

    storage.ready().then(() => { 
     // set key value 
     storage.set('myKey', 'myVal'); 

     // get value 
     storage.get('myKey').then((val) => { 
      console.log(val); 
     }) 
    }); 
    } 
}