2016-12-14 62 views
0

對於移動應用程序,我使用ionic2平臺。第一個屏幕是登錄,但我會記住用戶信息。因此,我創建了一個服務(見下文) 問題是我有這個錯誤: 類型'{}'上不存在屬性'email'。Ionic 2 basic:從存儲中獲取用戶並檢查用戶名/密碼

上註冊的檢查是這一個:

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

我用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'; 

還可以閱讀插件文檔如何從本地存儲清除。我希望這有幫助。

+0

這工作的存儲!謝謝。因爲我使用了模型,所以我還必須定義類型:''(user)'是'(user:UserModel)'。在改變之後,它終於開始工作了! –