2017-02-20 26 views
0

我试图获取用户输入的值,将其存储为一个对象,每当它需要获取用户输入的值店它的localStorage

import { Component } from '@angular/core';  
import { Storage } from '@ionic/storage'; 

@Component({ 
    selector: 'page-login', 
    templateUrl: 'login.html' 
}) 
export class LoginPage { 
    file; 
    user = { 
     Name: '', 
     email: '', 
     phone: '', 
     Country: ''   
    }; 
    constructor(public storage: Storage) { } 

    writeFile(){  
     var obj = this.user; 
     this.storage.set(obj).then(() => { 
      this.storage.get(obj).then(() => { 
       console.log(obj.user); 
      }); 
     }); 
    } 
} 

使用它以后我的HTML是

<ion-content padding> 
    <form #form="ngForm" (ngSubmit)="logForm(form)" novalidate> 
     <ion-list inset position="bottom"> 
      <ion-item> 
       <ion-label>Name</ion-label> 
       <ion-input [(ngModel)]="user.Name" name="Name" required type="text"></ion-input> 
      </ion-item> 

      <ion-item> 
       <ion-label >Email</ion-label> 
       <ion-input [(ngModel)]="user.email" name="email" required type="Email"></ion-input> 
      </ion-item> 
      <ion-item> 
       <ion-label >Phone Number</ion-label> 
       <ion-input [(ngModel)]="user.phone" name="phone" required type="number"></ion-input> 
      </ion-item> 
      <ion-item> 
       <ion-label >Country</ion-label> 
       <ion-input [(ngModel)]="user.Country" name="Country" required type="string"></ion-input> 
      </ion-item> 
     </ion-list> 
      <button ion-button block (click)="writeFile()">write file</button> 
    </form> 
</ion-content> 

因此,当用户输入值时,它将被传递给listing.ts文件中的“user”。我需要将其存储到本地存储。我需要它在我的控制台中看到这个对象。

编辑: 我尝试,我得到了错误: enter image description here

回答

1

我想,当你做this.storage.set(obj);,这是一个承诺。当您尝试在this.storage.get(obj).then(() => { console.log(obj.user); })上查看时,它尚未解决。

使您的代码是这样的:

writeFile(){  
    var obj = this.user; 
    this.storage.set(key,value).then(() => { 
     this.storage.get(obj).then(() => { 
      console.log(obj.user); 
     }); 
    }); 
} 

这应该工作。让我知道它是否有效。 :)

编辑:此外,您必须将它设置为键值格式,如this所示。

我也有不同的机制,我做本地存储。 这是这样的:

localStorage.setItem('user',JSON.stringify(jsonObject)); 
var temp = JSON.parse(localStorage.getItem('user')); 
console.log("Temp - ",temp); 

这也很好。

+0

获取err提供的参数不匹配调用目标的任何签名@Sagar Kulkarni –

+0

'storage.set(key,value)'是语法。看到这里 - https://ionicframework.com/docs/v2/storage/。 –

+0

我用另一种方法编辑了我的答案。请检查一下。 :) –