angular - Native Storage Error,不显示如下画面

标签 angular typescript ionic-framework ionic3

我正在尝试实现登录。

它有 2 个选项,一个可以注册您在 FB 中的数据,另一个可以手动输入。

在第一个表格中,您与 fb 连接,他会提供您的姓名和邮件,然后将您发送到下一个窗口,您必须在其中输入您的电话号码

在 resgitro 的第二个选项中,您可以在它显示“立即注册”的地方进行操作,它会将您带到同一页面,而这次只是从上方带您进入空白字段。

当我给出第二个选项时出现错误,出现以下错误并且不显示屏幕:

introducir la descripción de la imagen aquí

它告诉我它是空的 然后我的疑问是以下内容,因为当它到达空的时候它显示正常屏幕

This is the code of my login with 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);
            })
        })
    });
  }

Maybe it's a mistake to be in this class:

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,其中有 2 个按钮:

<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>

enter image description here

introducir la descripción de la imagen aquí

最佳答案

您需要使用 fat arrow functions如下所示。

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;
            });
    }

关于angular - Native Storage Error,不显示如下画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45845757/

相关文章:

Javascript/Typescript - 从对象中删除

cordova - 将 ionic 与 yarn 一起使用会导致 cordova 出现问题

json - Angular 2 Http GET 的问题

javascript - Angular 4 - 在标签点击时打开选择

angular - 在 ngFor 循环中动态地向元素添加一个类

javascript - 弹出项目后的 Angular-cli.json

javascript - ionic 切换检查属性

angular - .share() 与 .subscribe() _isScalar 丢失

angular - formbuilder 的 patchvalue 或 setvalue 不会将字段标记为脏或已触摸

html - 以 Angular 6动态添加div容器