Ionic 2 basic:从存储中获取用户并检查用户名/密码

时间:2016-12-14 16:18:49

标签: angularjs ionic-framework ionic2

对于移动应用,我使用ionic2平台。第一个屏幕是登录,但我会记住用户信息。因此我创建了一个服务(见下文) 问题是我有这个错误: 财产'电子邮件'类型' {}'。

上不存在

登录检查是这样的:

var  dataUser = this.userService.getUser().then(dataUser => {
      console.log(JSON.stringify(dataUser));
        this.userService.checkUser(dataUser.email,dataUser.password).then(dataCheck => {
    if (dataCheck)  {
        this.userService.setUser(dataCheck);
        this.nav.setRoot(HomePage);
    } else {
        console.log("not correct");
    }
});

});

所以在获取dataUser.email时他会抛出这个错误......但我找不到任何解决办法来解决这个问题:(

import { Storage } from '@ionic/storage';
import {UserModel} from '../models/user.model'

@Injectable()
export class UserService {
   constructor(public http: Http, public storage: Storage) {
}

setUser(user) {
   this.storage.set('user',user);
}

getUser() {
   return new Promise(resolve => {
      this.storage.get('user').then((user) => {
        if (user != null) {
            resolve(user);
        } else {
            resolve(new UserModel()); 
        }
      });
    })
}

checkUser(email,password) {

}

1 个答案:

答案 0 :(得分:1)

我使用NativeStorage:

NativeStorage.setItem('user',{email: this.email, password: this.password}).then(() => {
    console.log("credentials stored");
}

然后获取信息

NativeStorage.getItem('user').then((user) => {
    console.log("this is email: " + user.email);
    console.log("this is password: " + user.pasword);
}

不要忘记安装插件并导入

import { NativeStorage } from 'ionic-native';

另请参阅插件文档,了解如何从Native Storage中清除。我希望这有帮助。