angular - 本地存储错误,无法显示以下屏幕
我正在尝试实现登录。
有两种注册选项,一种是使用你在 FB 上的数据注册,另一种是手动输入。
在第一个表单中,你与 Facebook 连接,他会获取你的姓名和邮箱,然后把你发送到下一个窗口,在那里你必须输入你的电话号码
在你提供的注册的第二个选项中,当你点击“立即注册”时,它会将你带到与上面相同的页面,只是这次字段是空的。
当我选择第二个选项时,会出现错误,并且屏幕不显示如下错误:
它告诉我它是空的,那么我的疑问是,当它到达空的状态时,它是否显示正常屏幕
这是我使用 Facebook 登录的代码:
loginWithFB() {
let nav = this.navCtrl;
let env = this;
this.facebook.login(['email', 'public_profile']).then((response: FacebookLoginResponse) => {
this.facebook.api('me?fields=id,name,email,first_name,picture.width(720).height(720).as(picture_large)', [])
.then(function (user) {
env.nativeStorage.setItem('user',
{
name: user.name,
email: user.email
})
.then(function () {
nav.push(RegistroNPage);
//console.log(user);
}, function (error) {
console.log(error);
})
})
});
}
也许上这门课是个错误:
ionViewCanEnter() {
console.log('Ya llegue');
let env = this;
return this.nativeStorage.getItem('user')
.then(function (data) {
env.user = {
name: data.name,
email: data.email
};
console.log(env.user);
env.userReady = true;
return true;
}, function (error) {
console.log(error);
return false;
});
}
这是我注册页面的 HTML,其中包含两个按钮:
<ion-content padding class="body" align="center">
<img src="assets/logito.png">
<br>
<br>
<ion-list *ngIf="userReady">
<ion-item>
<ion-label>
<ion-icon name="person"></ion-icon>
</ion-label>
<ion-input type="text" placeholder="Nombres" [(ngModel)]="user.name">
</ion-input>
</ion-item>
<ion-item>
<ion-label>
<ion-icon name="mail"></ion-icon>
</ion-label>
<ion-input type="text" placeholder="Nombres" [(ngModel)]="user.email">
</ion-input>
</ion-item>
<ion-item>
<ion-label>
<ion-icon name="call"></ion-icon>
</ion-label>
<ion-input clearInput type="number" placeholder="Teléfono">
</ion-input>
</ion-item>
</ion-list>
<button ion-button item-end round full icon-start color="dark" class="botones">
<ion-icon name='checkmark-circle-outline'></ion-icon>
registar
</button>
</ion-content>
答案#1
你需要像下面这样使用箭头函数。
ionViewCanEnter() {
let env = this;
return this.nativeStorage.getItem('user')
.then((data) => {
env.user = {
name: data.name,
email: data.email
};
console.log(env.user);
env.userReady = true;
return true;
}, (error)=> {
console.log(error);
return false;
});
}


